Hola, David.
Te adjunto un .doc que hice con diferentes fuentes que encontré en
Internet. Te resumo:
- Hay directorios que tiene su propia función en al API:
GetWindowsDirectory, GetSystemDirectory, GetTempPath (no he visto para
la de Inicio -en el API-).
- Hay varias alternativas: SHGetFolderPath, SHGetSpecialFolderPath y
Windows Script Shell (me gustan más las dos primeras -parecen del
API-, pues el WScript.Shell necesita una dll para registrar, ya que en
algunas máquinas no lo está -estoy teniendo dificultades con
WScript.Shell-). De todas formas todas tres permiten investigar un
gran número de directorios, entre ellos: CSIDL_ALTSTARTUP,
CSIDL_COMMON_ALTSTARTUP, CSIDL_COMMON_STARTMENU, CSIDL_COMMON_STARTUP,
CSIDL_STARTUP, los cuales se refieren a tu inquietud (no me queda
clara -al ver sólo el nombre- la diferencia entre STARTMENU y STARTUP
y ALTSTARTUP; de todas formas es conveniente que tú mismo hagas las
pruebas).
- Existen alternativas basadas en variables de entorno DOS, como
%windir%\system32 o %windir%\fonts, pero no me gustan, pues las
palabras "fonts" y "system32" están "hard-coded" y, por ejm, "fonts"
podrían estar traducidas al idioma del país (o cambiadas).
- Luego de saber que existen CSIDL_FONTS y CSIDL_CDBURN_AREA se me
ampliaron las neuronas....
- De acuerdo a lo que menciona en
Wiki.HelpMVP.com, las mismas
funciones y valores aplican para vista y 7. Incluso menciona que hay 4
funciones en total: SHGetFolderLocation, SHGetFolderPath,
SHGetSpecialFolderLocation, and SHGetSpecialFolderPath.
.
((lo lamento chicos; no veo botón para adjuntar; lo pondré en Archivos
con un nombnre como "Averiguar-Directorios.doc"))
Chao.
.