Programación General > Visual C++
Crear Un Directorio En "program Files"
(1/1)
diego.martinez:
Buenas:
Teniendo en cuenta que Archivos de Programa puede llamarse Program Files u otras cosas como puedo asegurarme de crear un directorio en el equivalente de Archivos de Programa del usuario?
he probado con CreateDirectory("%ProgramFiles%/Prueba",0);
y no ha funcionado, alguna idea?
daltomi:
Modo de prueba:
--- Código: Text --- LPMALLOC lpMalloc; LPITEMIDLIST lpiDir; LPSTR lpBuffer; if(!SUCCEEDED(SHGetMalloc(&lpMalloc))) { return 1; } lpBuffer = (LPSTR)lpMalloc->Alloc(MAX_PATH); if(lpBuffer == NULL) { lpMalloc->Release(); return 1; }; if(!SUCCEEDED(SHGetSpecialFolderLocation(NULL,CSIDL_APPLICATION,&lpiDir))) { lpMalloc->Free(lpBuffer); lpMalloc->Release(); return 1; } if(!SHGetPathFromIDList(lpiDir,lpBuffer)) { lpMalloc->Free(lpiDir); lpMalloc->Free(lpBuffer); lpMalloc->Release(); return 1; } lpMalloc->Free(lpiDir); lpMalloc->Free(lpBuffer); lpMalloc->Release(); El la documentación de ShellApi no especifica el identificador para la carpeta Archivos de Programa, en ducumentaciones viejas seria 0x0024, pero no funcionó en mi plataforma, con 0x0026 funcionó correctamente:
--- Código: Text --- #define CSIDL_APPLICATION 0x0026 El archivo de inclusión es:
--- Código: Text --- #include <shlobj.h>
diego.martinez:
gracias, tiene muy buena pinta!
Navegación
Ir a la versión completa