Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
Delphi XE3 Enterprise
|
AW: StringToKnownFolder gesucht
1. Aug 2012, 06:35
Delphi-Quellcode:
uses ActiveX, ShlObj;
function GetSpecialFolder(hWindow: HWND; Folder: Integer): String;
var
pMalloc: IMalloc;
pidl: PItemIDList;
Path: PChar;
begin
// Parameter für Folder:
//Const CSIDL_FLAG_CREATE = &H8000 '(Win 2000) Falls das Verzeichnis nicht Eistiert wird es erstellt
//Const CSIDL_FLAG_DONT_VERIFY = &H4000 '(Win 2000) Benutzt den Ordner auch wenn der CSIDL nicht existiert
//Const CSIDL_ADMINTOOLS = &H30 '(Win 2000) Ermittelt das Verzeichnis "Administrations Tools"
//Const CSIDL_ALTSTARTUP = &H1D 'Ermittelt das Verzeichnis "Alternatives Startverzeichnis"
//Const CSIDL_APPDATA = &H1A 'Ermittelt das Verzeichnis "AppData"
//Const CSIDL_BITBUCKET = &HA 'Ermittelt das Verzeichnis "Papierkorb"
//Const CSIDL_COMMON_ADMINTOOLS = &H2F '(Win 2000) Ermittelt das Verzeichnis "Administartions Tools für alle Benutzer"
//Const CSIDL_COMMON_ALTSTARTUP = &H1D '(Win 2000) Ermittelt das Verzeichnis "Alternatives Startverzeichnis für alle Benutzer"
//Const CSIDL_COMMON_APPDATA = &H23 '(Win NT/2000) Ermittelt das Verzeichnis "AppData für alle Benutzer"
//Const CSIDL_COMMON_DESKTOPDIRECTORY = &H19 '(Win NT/2000) Ermittelt das Verzeichnis "Desktop für alle Benutzer"
//Const CSIDL_COMMON_DOCUMENTS = &H2E '(Win NT/2000) Ermittelt das Verzeichnis "Dokumente für alle Benutzer"
//Const CSIDL_COMMON_FAVORITES = &H1F '(Win NT/2000) Ermittelt das Verzeichnis "Favoriten für alle Benutzer"
//Const CSIDL_COMMON_PROGRAMS = &H17 '(Win NT/2000) Ermittelt das Verzeichnis "Startmenü/Programme für alle Benutzer"
//Const CSIDL_COMMON_STARTMENU = &H16 '(Win NT/2000) Ermittelt das Verzeichnis "Startmenü für alle Benutzer"
//Const CSIDL_COMMON_STARTUP = &H18 '(Win NT/2000) Ermittelt das Verzeichnis "Startmenü/Autostart für alle Benutzer"
//Const CSIDL_COMMON_TEMPLATES = &H2D '(Win NT/2000) Ermittelt das Verzeichnis "Templates für alle Benutzer"
//Const CSIDL_CONTROLS = &H3 'Ermittelt das Verzeichnis "Systemsteuerung"
//Const CSIDL_COOKIES = &H21 'Ermittelt das Verzeichnis "Cookies"
//Const CSIDL_DESKTOP = &H0 'Ermittelt das Verzeichnis "Desktop"
//Const CSIDL_DESKTOPDIRECTORY = &H10 'Ermittelt das Verzeichnis "Desktop-Verzeichnis"
//Const CSIDL_DRIVES = &H11 'Ermittelt das Verzeichnis "Arbeitsplatz"
//Const CSIDL_FAVORITES = &H6 'Ermittelt das Verzeichnis "Favoriten"
//Const CSIDL_FONTS = &H14 'Ermittelt das Verzeichnis "Fonts"
//Const CSIDL_HISTORY = &H22 'Ermittelt das Verzeichnis "History"
//Const CSIDL_INTERNET = &H1 'Ermittelt das Verzeichnis "Internet"
//Const CSIDL_INTERNET_CACHE = &H20 'Ermittelt das Verzeichnis "Internet Cache"
//Const CSIDL_LOCAL_APPDATA = &H1C '(nur IE ab Version 5.0) Ermittelt das Verzeichnis "Local AppData"
//Const CSIDL_MYPICTURES = &H27 '(nur IE ab Version 5.0) Ermittelt das Verzeichnis "Eigene Bilder"
//Const CSIDL_NETHOOD = &H13 'Ermittelt das Verzeichnis "Netzwerkumgebung"
//Const CSIDL_NETWORK = &H12 'Ermittelt das Verzeichnis "Gesamtes Netzwerk"
//Const CSIDL_PERSONAL = &H5 'Ermittelt das Verzeichnis "Eigene Dokumente"
//Const CSIDL_PRINTERS = &H4 'Ermittelt das Verzeichnis "Drucker"
//Const CSIDL_PRINTHOOD = &H1B 'Ermittelt das Verzeichnis "Drucker-Verzeichnis"
//Const CSIDL_PROFILE = &H28 '(nur IE ab Version 5.0) Ermittelt das Verzeichnis "Profile"
//Const CSIDL_PROGRAM_FILES = &H26 '(nur IE ab Version 5.0) Ermittelt das Verzeichnis "Programme"
//Const CSIDL_PROGRAM_FILES_COMMON = &H2B '(Win NT/2000) Ermittelt das Verzeichnis "Programme für alle Benutzer"
//Const CSIDL_PROGRAM_FILES_COMMONX86 = &H2C '(Win 2000 - x86) Ermittelt das Verzeichnis "Programme für alle Benutzer"
//Const CSIDL_PROGRAM_FILESX86 = &H2A '(Win 2000 - RISC) Ermittelt das Verzeichnis "Programme für alle Benutzer"
//Const CSIDL_PROGRAMS = &H2 'Ermittelt das Verzeichnis "Startmenü/Programme"
//Const CSIDL_RECENT = &H8 'Ermittelt das Verzeichnis "Startmenü/Dokumente"
//Const CSIDL_SENDTO = &H9 'Ermittelt das Verzeichnis "Senden zu"
//Const CSIDL_STARTMENU = &HB 'Ermittelt das Verzeichnis "Startmenü"
//Const CSIDL_STARTUP = &H7 'Ermittelt das Verzeichnis "Autostart"
//Const CSIDL_SYSTEM = &H25 '(nur IE ab Version 5.0) Ermittelt das Verzeichnis "System"
//Const CSIDL_SYSTEMX86 = &H29 '(Win 2000) Ermittelt das Verzeichnis "Systemx86"
//Const CSIDL_TEMPLATES = &H15 'Ermittelt das Verzeichnis "Templates"
if (SHGetMalloc(pMalloc) <> S_OK) then
begin
MessageBox(hWindow, ' Couldn'' t get pointer to IMalloc interface.',
' SHGetMalloc(pMalloc)', 16);
Exit;
end;
SHGetSpecialFolderLocation(hWindow, Folder, pidl);
GetMem(Path, MAX_PATH);
SHGetPathFromIDList(pidl, Path);
Result := Path;
FreeMem(Path);
pMalloc.Free(pidl);
end;
Thomas Wassermann H₂♂ Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂♂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
|
|
Zitat
|