Desktop Pfad herausfinden
-
gibts es einen simple routine um den Pfad zum Desktop heraus zu finden, die auf w98 und nt-basierten systemen gleichermaßen funktioniert?
danke!
-
In der Registry suchen.
z.B: HKCU\software\microsoft\windows\currentversion\explorer\shell folders
-
SHGetSpecialFolderPath mit CSIDL_DESKTOPDIRECTORY
-
Bitte nicht über die Registry, wenn es dafür API Funktionen gibt. Wer weiß, ob der Eintrag bei der nächsten Windowsversion da auch noch steht.
SHGetFolderPath oder SHGetSpecialFolderPath oder SHGetSpecialFolderLocation.
Vieleicht kan mal jemand erklären, warum es da so viele Funktionen gibt.

-
Der Grund liegt in der (wirklich tollen (ernstgemeint)) kompatibilität der APIs!
Das folgende liefert einen Pfad:
SHGetFolderPath (ab shell v5)
- SHGetSpecialFolderPath (ab shell v4.71)
(hier gibt es auch noch Probleme mit alten DLLs (SHFolder.dll))
(in der Doku steht auch irgendwas, dass es nur bestimmte CLSIDs kann... konnte ich jetzt aber nicht Nachvollziehen...)Das folgende liefert eine "ITEMIDLIST":
SHGetFolderLocation (ab shell v5)
- SHGetSpecialFolderLocation (ab shell v4)
Das kannst Du dann mittels
SHGetPathFromIDList
in einen richtigen Pfad umwandeln...Weitere Infos siehe:
The Shell Namespace
http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/programmersguide/shell_basics/namespace.aspGetting a Folder's ID
http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/programmersguide/shell_basics/shell_basics_programming/folder_id.asp
-
Herzlichen Dank für die Erklärungen und die Links!
