• Lunes 29 de Abril de 2024, 07:05

Autor Tema:  Crear Un Directorio En "program Files"  (Leído 1140 veces)

diego.martinez

  • Miembro MUY activo
  • ***
  • Mensajes: 297
    • Ver Perfil
Crear Un Directorio En "program Files"
« en: Jueves 12 de Julio de 2007, 13:26 »
0
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

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Crear Un Directorio En "program Files"
« Respuesta #1 en: Jueves 12 de Julio de 2007, 16:04 »
0
Modo de prueba:
Código: Text
  1.  
  2.         LPMALLOC lpMalloc;
  3.   LPITEMIDLIST lpiDir;
  4.   LPSTR lpBuffer;
  5.  
  6.   if(!SUCCEEDED(SHGetMalloc(&lpMalloc)))
  7.   {
  8.     return 1;
  9.   }
  10.   lpBuffer = (LPSTR)lpMalloc->Alloc(MAX_PATH);
  11.   if(lpBuffer == NULL)
  12.   {
  13.     lpMalloc->Release();
  14.     return 1;
  15.   };
  16.  
  17.   if(!SUCCEEDED(SHGetSpecialFolderLocation(NULL,CSIDL_APPLICATION,&lpiDir)))
  18.   {
  19.     lpMalloc->Free(lpBuffer);
  20.     lpMalloc->Release();
  21.     return 1;
  22.   }
  23.  
  24.   if(!SHGetPathFromIDList(lpiDir,lpBuffer))
  25.   {
  26.     lpMalloc->Free(lpiDir);
  27.     lpMalloc->Free(lpBuffer);
  28.     lpMalloc->Release();
  29.     return 1;
  30.   }
  31.     lpMalloc->Free(lpiDir);
  32.     lpMalloc->Free(lpBuffer);
  33.     lpMalloc->Release();
  34.  
  35.  
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
  1.  
  2. #define CSIDL_APPLICATION 0x0026
  3.  
  4.  
El archivo de inclusión es:
Código: Text
  1.  
  2. #include <shlobj.h>
  3.  
  4.  

diego.martinez

  • Miembro MUY activo
  • ***
  • Mensajes: 297
    • Ver Perfil
Re: Crear Un Directorio En "program Files"
« Respuesta #2 en: Jueves 12 de Julio de 2007, 16:08 »
0
gracias, tiene muy buena pinta!