Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   SHGetSpecialFolderLocation + CSIDL? (https://www.delphipraxis.net/158691-shgetspecialfolderlocation-csidl.html)

demic 27. Feb 2011 02:57

SHGetSpecialFolderLocation + CSIDL?
 
Hallo,
ich habe zwar o.g. Funktion noch nicht verwendet aber ich sehe da ein Problem.
Es gibt eine CSIDL-Liste damit ich den entsprechenden Spezial-Ordner ermitteln kann. Eine Microsoft-Seite verrät mir, welche CSIDL zu welcher Windows-Version gehört. Bei Windows 8, 9, 10 usw. werden wohl andere CSIDL-Namen dazukommen bzw. vorhandene evtl. abgeändert. Das bedeutet ja, dass mein Programm für zukünftige Windows-Versionen ein Update benötigt. Aus der Registry* hier etwas zu ermitteln ist wohl der falsche Weg. Gibt es evtl. eine weitere Funktion, damit ich alle Spezial-Ordner der verwendeten Windows-Version ermitteln kann?

*
In der Registry steht in dem entsprechenden Bereich "Use the SHGetFolderPath or SHGetKnownFolderPath function instead".

Was den nun? "SHGetFolderPath", "SHGetKnownFolderPath" oder was ich durch Google gefunden habe "SHGetSpecialFolderLocation"? Ach, "SHGetSpecialFolderPath" gibt es auch noch.

Gruß
Michael

Bummi 27. Feb 2011 07:59

AW: SHGetSpecialFolderLocation + CSIDL?
 
auch beim Wechsel von XP nach Vista sind einige Folder pfadmäßig umgezogen, aber wo liegt das Problem, solange Deine Anwendungen über die CSIDL's zugreifen verwenden sie doch unter den den verschiedenen Versionen trotzdem definierte Ordner, dh. wenn Anwendung A etwas unter X ablegt wird Anwendung Y dies auch dort finden.:?:

Ok, bei den Setups mag es etwas lästig sein, wenn die Pfade nicht sicher erkennbar sind.

hathor 27. Feb 2011 08:45

AW: SHGetSpecialFolderLocation + CSIDL?
 
Guckst Du hier - letzte Zeile:

http://www.delphipraxis.net/110957-g...tml#post755890

demic 27. Feb 2011 19:15

AW: SHGetSpecialFolderLocation + CSIDL?
 
Ich hatte leider ein Fehler in meinem FindFirst/Next, diese keine Spezial-Ordner finden konnten. Deshalb dachte ich, diese Ordner müssen auf anderen Weg ermittelt werden. Nun waren diese Ordner da aber noch ohne Info, ob Spezial oder nicht. Mit dem Wert von "faSymLink" ($00000040) ging es nicht. Auf "$0400" abgeändert und nun habe ich meine (noch nicht optimierte) Routine, die ich für mein Programm benötige.

Dennoch Danke für Eure Hilfe

Gruß
Michael


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz