Ich arbeite mit Delphi 7 und möchte den Pfad meines Verzeichnisses .. / Alle Benutzer / Dokumente ermitteln.
Ich bin auf folgenden Code gestoßen:
Es funktioniert gut, aber es unterstützt nicht CSIDL_COMMON_DOCUMENTS
, was den gewünschten Pfad zurückgibt.
Außerdem sollte nach MS CSIDL nicht mehr verwendet werden Verwenden Sie KNOWNFOLDERID .
Und ich muss diese App auf mehreren Betriebssystemen (nur Windows) arbeiten.
Wie kann ich das machen?
Hilfe wird geschätzt:)
Aus meiner Sicht ist nichts falsch daran, SHGetSpecialFolderPath
über CSIDL_COMMON_DOCUMENTS
aufzurufen. Wenn Sie XP unterstützen müssen, können Sie keine bekannten Ordner-IDs verwenden. Sie könnten Code schreiben, der bekannte Ordner-IDs unter Vista und höher verwendet, und auf früheren Systemen auf CSIDL zurückgreifen. Aber warum stören? MS hat das für Sie mit SHGetSpecialFolderPath
erledigt.
Sie müssen shlobj
zur Benutzungszeile für den Code hinzufügen, der davon Gebrauch macht.
Da es in der Quelle keine Definition für SHGetFolderPath gibt, können Sie Folgendes vor dem Code verwenden, der sie verwendet:
%Vor%Delphi 7 verwendet die Wide-Version der Routine nicht, daher können Sie diesen Code verwenden.
Wie bereits erwähnt, verwenden Sie die SHGetSpecialFolderPath-Funktion. Vista und W7 machen die CSIDL / Ordner-Konvertierung für Sie. Wenn Sie die neuere API verwenden möchten, sollte dies zum Trick führen: Bitte beachten Sie, dass dies nur von Vista aus funktioniert.
%Vor%