Einzelnen Beitrag anzeigen

aps

Registriert seit: 21. Sep 2003
Ort: Hameln
62 Beiträge
 
Delphi 6 Professional
 
#1

Probleme mit Special Folder

  Alt 26. Mär 2013, 17:45
Hallo,

ich nutze folgende Funktion, um Special Folders zu ermitteln:

Code:
const
  CSIDL_COMMON_DOCUMENTS = $002e;

function GetSpecialFolder(hWindow: HWND; Folder: Integer): String;
var
  pMalloc: IMalloc;
  pidl: PItemIDList;
  Path: PChar;
begin
  // get IMalloc interface pointer
  if (SHGetMalloc(pMalloc) <> S_OK) then
  begin
    MessageBox(hWindow, 'Couldn''t get pointer to IMalloc interface.',
               'SHGetMalloc(pMalloc)', 16);
    Exit;
  end;

  // retrieve path
  SHGetSpecialFolderLocation(hWindow, Folder, pidl);
  GetMem(Path, MAX_PATH);
  SHGetPathFromIDList(pidl, Path);
  Result := Path;
  FreeMem(Path);

  // free memory allocated by SHGetSpecialFolderLocation
  pMalloc.Free(pidl);
end;


Directory = GetSpecialFolder(Handle, CSIDL_COMMON_DOCUMENTS);
Das funktioniert auch auf praktisch allen PCs wunderbar, bis auf einen einzigen mir bekannten Kunden-PC unter Windows XP. Da kommt immer ein leerer Pfad raus anstelle des gewünschten Pfads für die Gemeinsamen Dokumente (unter Win7 Bibliothek Gemeinsame Dateien).

Woran kann das liegen und wie bekomme ich auch auf dem Rechner den gewünschten Pfad? Laut Kundenangaben gibt es den Pfad, sogar an standardmäßiger Stelle, nur mein Delphi-Programm (d6) schafft es nicht, ihn zu ermitteln.

Danke im Voraus!
Andreas
Freude am Schauen und Begreifen ist die schönste Gabe der Natur. [Albert Einstein]
  Mit Zitat antworten Zitat