Función SHGetSpecialFolderPath de API...

Draker
09 de Junio del 2003
Logré utilizar una función del API interesante, puedes obtener los directorios configurados en Windows no comunes, el código es el siguiente:

FUNCTION GetPicsDir(nHex) && Número Hexadecimal
LOCAL STRING sPathP
Declare Long SHGetSpecialFolderPath In "shell32.dll" ;
Long hWnd, String @sPath, Long Folder, Long Create

sPathP = SPACE(261) && Tamaño del string de 261 espacios en blanco.

= SHGetSpecialFolderPath(1, @sPathP, nHex, .F.) && Llama el valor al API.
*--- NOTA: @variable, pasa el parametro por referencia, es decir para que
*--- sea modificado y retorne su valor.

sPathP = LEFT(sPathP,AT(Chr(0),sPathP) - 1) && Asigna el valor del Path.

RETURN sPathP

ENDFUNC

Draker
09 de Junio del 2003

**** EJEMPLOS:

? GetPicsDir(1)) && Path de Menú de InicioProgramas del usuario actual.
? GetPicsDir(5)) && Path de Mis Documentos del usuario actual.
? GetPicsDir(6)) && Path de Favoritos del usuario actual.
? GetPicsDir(7)) && Path de Menú de InicioProgramasInicio del usuario actual.
? GetPicsDir(B)) && Path de Escritorio del usuario actual.
? GetPicsDir(11)) && Path de Menú de Inicio del usuario actual.
? GetPicsDir(13)) && Path de Mi música del usuario actual.
? GetPicsDir(20)) && Path de WindowsFonts
? GetPicsDir(22)) && Path de Menú de Inicio de todos los usuarios.
? GetPicsDir(23)) && Path de Menú de InicioProgramas de todos los usuarios.
? GetPicsDir(24)) && Path de Menú de InicioProgramasInicio de todos los usuarios.
? GetPicsDir(31)) && Path de Favoritos de todos los usuarios.
? GetPicsDir(36)) && Path de Windows.
? GetPicsDir(37)) && Path de WindowsSystem32..
? GetPicsDir(38)) && Path de Archivos de programa.
? GetPicsDir(39)) && Path de Mis Imágenes del usuario actual.
? GetPicsDir(43)) && Path de Archivos de programaArchivos comunes.
? GetPicsDir(53)) && Path de Mi música de todos los usuarios.
? GetPicsDir(54)) && Path de Mis Imágenes de todos los usuarios.
**** Etc.
NOTA: Recuerden que los números en la función son hexadecimales.

Espero les sirva. Saludos desde Guatemala.
Draker