![]() |
Get Windows Special Folders
Liebe DP Gemeinde,
trotz vieler Postings über die CSIDL_xxx vordefinierten Werte von speziellen Pfaden unter Windows, stelle ich immer wieder fest, daß manche Werte funktionieren, andere leider nicht. Aus diesem Grunde habe ich ein kleines Tool gemacht - im zip-Archive natürlich das komplette Test Project. MfG, terence Im Anhang PSpecialPathes-Test_2013_01_11.zip - 225.470 Bytes |
AW: Get Windows Special Folders
Die sollten schon funktionieren, aber je nach Delphi-Version sind einige Konstanten noch unbekannt.
|
AW: Get Windows Special Folders
Na und dann läßt Du sie dir in einer Schleife ausgeben.
Und es gibt wirklich ein paar Werte da hab ich bisher noch kein Wording für gefunden, und umgekehrt wordings da ist angeblich der Übergabewert unbekannt. Es muß ja auch noch etwas für "undocumented windows" geben. Gruß K-H P.S. Bevor Du nach Details fragst, die liegen zu Hause gaanz tief unten... |
AW: Get Windows Special Folders
Da mein Delphi nicht alle Konstanten kennt, habe ich sie mir in einer meiner Units neu definiert und näher angeguckt. Nebenbei habe ich mir paar Kommentare dazu notiert (muss nicht vollständig und richtig sein). Vielleicht kann es einer gebrauchen:
Delphi-Quellcode:
CSIDL_DESKTOP = $0000; // %HomeDir%\Desktop (virtueller Ordner)
CSIDL_INTERNET = $0001; // (??? -leer- Internet Explorer) (virtueller Ordner) CSIDL_PROGRAMS = $0002; // %HomeDir%\Startmenü\Programme; CSIDL_CONTROLS = $0003; // (??? -leer- Icons für Systemsteuerung) (virtueller Ordner) CSIDL_PRINTERS = $0004; // (??? -leer- Installierte Drucker) (virtueller Ordner) CSIDL_PERSONAL = $0005; // %HomeDir%\Dokumente; CSIDL_FAVORITES = $0006; // %HomeDir%\Favoriten; CSIDL_STARTUP = $0007; // %HomeDir%\Programme\Autostart; CSIDL_RECENT = $0008; // %HomeDir%\Recent; (um einen Eintrag in dieses Verzeichnis zu erzeugen, sollte SHAddToRecentDocs benutzt werden) CSIDL_SENDTO = $0009; // %HomeDir%\SendTo; CSIDL_BITBUCKET = $000a; // (??? -leer- Recycle Bin) CSIDL_STARTMENU = $000b; // %HomeDir%\Startmenü; CSIDL_MYMUSIC = $000d; // %HomeDir%\Dokumente\Eigene Musik; CSIDL_MYVIDEO = $000e; // %HomeDir%\Dokumente\Eigene Videos; CSIDL_DESKTOPDIRECTORY = $0010; // %HomeDir%\Desktop; (liefert den Desktop-Pfad, allerdings... siehe Hinweis unten) {hier werden die Objekte auf dem Desktop physisch gespeichert (nicht zu verwechseln mit CSIDL_DESKTOP), ein typisches Verzeichnis ist C:\Windows\username\Desktop)} CSIDL_DRIVES = $0011; // (??? -leer- Arbeitsplatz [Laufwerke, Drucker, Systemsteuerung, usw]) (virtueller Ordner) CSIDL_NETWORK = $0012; // (??? -leer- Netzwerkumgebung-virtuelles Verzeichnis) CSIDL_NETHOOD = $0013; // %HomeDir%\Netzwerkumgebung; CSIDL_FONTS = $0014; // %WinDir%\Fonts; CSIDL_TEMPLATES = $0015; // %HomeDir%\Vorlagen; CSIDL_COMMON_STARTMENU = $0016; // %AllUsers%\Startmenü; (Nur für WinNT). CSIDL_COMMON_PROGRAMS = $0017; // %AllUsers%\Startmenü\Programme; CSIDL_COMMON_STARTUP = $0018; // %AllUsers%\Startmenü\Programme\Autostart; (Nur für WinNT). CSIDL_COMMON_DESKTOPDIRECTORY = $0019; // %AllUsers%\Desktop; (Nur für WinNT) CSIDL_APPDATA = $001a; // %HomeDir%\Anwendungsdaten; CSIDL_PRINTHOOD = $001b; // %HomeDir%\Druckumgebung; CSIDL_LOCAL_APPDATA = $001c; // %HomeDir%\Lokale Einstellungen\Anwendungsdaten; CSIDL_ALTSTARTUP = $001d; // (??? -leer- veraltet) CSIDL_COMMON_ALTSTARTUP = $001e; // (??? -leer- veraltet) (Nur für WinNT) CSIDL_COMMON_FAVORITES = $001f; // %AllUsers%\Favoriten; (Ablage für gemeinsame Favoriten) (Nur für WinNT). CSIDL_INTERNET_CACHE = $0020; // %HomeDir%\Temporary Internet Files; CSIDL_COOKIES = $0021; // %HomeDir%\Cookies; CSIDL_HISTORY = $0022; // %HomeDir%\Verlauf; CSIDL_COMMON_APPDATA = $0023; // %AllUsers%\Anwendungsdaten; CSIDL_WINDOWS = $0024; // %WinDir%; (Wird als sicherere Alternative zu GetWindowsDirectory empfohlen) //CSIDL_SYSTEM = $0025; // %SysDir%; (siehe auch $0029, gleich; wird als sicherere Alternative zu GetSystemDirectory empfohlen) CSIDL_PROGRAM_FILES = $0026; // %ProgramFiles%; CSIDL_MYPICTURES = $0027; // %HomeDir%\Dokumente\Eigene Bilder; CSIDL_PROFILE = $0028; // %HomeDir%; (Verzeichnis für Benutzerprofil) CSIDL_SYSTEM = $0029; // %SysDir%; (siehe auch $0025, gleich; wird als sicherere Alternative zu GetSystemDirectory empfohlen) // = CSIDL_PROGRAM_FILES_COMMON = $002B; // %ProgramFiles%\Common; (Verzeichnis für Gemeinsame Dateien) CSIDL_COMMON_TEMPLATES = $002D; // %AllUsers%\All Users\Templates; (Nur für WinNT) CSIDL_COMMON_DOCUMENTS = $002E; // %AllUsers%\All Users\Dokumente; CSIDL_COMMON_ADMINTOOLS = $002F; // %AllUsers%\Startmenü\Programme\Verwaltung; CSIDL_ADMINTOOLS = $0030; // %HomeDir%\Startmenü\Programme\Verwaltung; CSIDL_COMMON_MUSIC = $0035; // %AllUsers%\Dokumente\Eigene Musik; CSIDL_COMMON_PICTURES = $0036; // %AllUsers%\Dokumente\Eigene Bilder\; CSIDL_COMMON_VIDEOS = $0037; // %AllUsers%\Dokumente\Eigene Videos; // = CSIDL_RESOURCES = $0038; // %WinDir%\Resources; (für Themes und andere Windows Ressourcen) CSIDL_RESOURCES_LOCALIZED = $0039; // %WinDir%\Resources\<LangID> ([Liefert leeren String] eigentlich wie oben, bzw.: für Themes und andere Windows-Spezifische Ressourcen) CSIDL_CDBURN_AREA = $003B; // %HomeDir%\Lokale Einstellungen\Anwendungsdaten\Microsoft\CD Burning |
AW: Get Windows Special Folders
@Popov
Danke für die Liste. Ich habe z.B. das Problem, daß a) CSIDL_FAVORITES und b) CSIDL_COMMON_FAVORITES beide den Pfad für a), also "c:\users\xyz\Favorites" zurückgeben, anstatt daß b) den Pfad "c:\users\public\Favorites" liefert. Ich verwende WinVista HomeEdition und Delphi2005. Deshalb muß ich tricksen, um b) zu bekommen, und setzte den Pfad aus Einzelteilen zusammen :) MfG, terence |
AW: Get Windows Special Folders
Das gab es
![]() |
AW: Get Windows Special Folders
Das sollte schon seine Richtigkeit haben. Allerdings hat MS seit Vista neue Methode der spez. Ordner Ermittlung eingeführt.
|
AW: Get Windows Special Folders
Zitat:
Vielen Dank, die Seite habe ich schon gefunden und gelesen. Hat aber trotzdem nichts daran geändert, daß ich für CSIDL_FAVORITES und CSIDL_COMMON_FAVORITES immer den Pfad für CSIDL_FAVORITES, also den, des momentan eingeloggten Users bekomme. Komischerweise funktioniert es bei allen anderen vordefinierten Pfaden. Siehe Liste dazu: Wurde erstellt unter Windows Vista Home Edition und Delphi2005: 87 ist mein LoginName :) 0000: 'C:\Users\87\Desktop\'; 0001: '\'; 0002: 'C:\Users\87\AppData\Roaming\Microsoft\Windows\Sta rt Menu\Programs\'; 0003: '\'; 0004: '\'; 0005: 'C:\Users\87\Documents\'; 0006: 'C:\Users\87\Favorites\'; 0007: 'C:\Users\87\AppData\Roaming\Microsoft\Windows\Sta rt Menu\Programs\Startup\'; 0008: 'C:\Users\87\AppData\Roaming\Microsoft\Windows\Rec ent\'; 0009: 'C:\Users\87\AppData\Roaming\Microsoft\Windows\Sen dTo\'; 000A: '\'; 000B: 'C:\Users\87\AppData\Roaming\Microsoft\Windows\Sta rt Menu\'; 000C: '\'; 000D: 'C:\Users\87\Music\'; 000E: 'C:\Users\87\Videos\'; 000F: '\'; 0010: 'C:\Users\87\Desktop\'; 0011: '\'; 0012: '\'; 0013: 'C:\Users\87\AppData\Roaming\Microsoft\Windows\Net work Shortcuts\'; 0014: 'C:\Windows\Fonts\'; 0015: 'C:\Users\87\AppData\Roaming\Microsoft\Windows\Tem plates\'; 0016: 'C:\ProgramData\Microsoft\Windows\Start Menu\'; 0017: 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\'; 0018: 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\'; 0019: 'C:\Users\Public\Desktop\'; 001A: 'C:\Users\87\AppData\Roaming\'; 001B: 'C:\Users\87\AppData\Roaming\Microsoft\Windows\Pri nter Shortcuts\'; 001C: 'C:\Users\87\AppData\Local\'; 001D: 'C:\Users\87\AppData\Roaming\Microsoft\Windows\Sta rt Menu\Programs\Startup\'; 001E: 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\'; 001F: 'C:\Users\87\Favorites\'; 0020: 'C:\Users\87\AppData\Local\Microsoft\Windows\Tempo rary Internet Files\'; 0021: 'C:\Users\87\AppData\Roaming\Microsoft\Windows\Coo kies\'; 0022: 'C:\Users\87\AppData\Local\Microsoft\Windows\Histo ry\'; 0023: 'C:\ProgramData\'; 0024: 'C:\Windows\'; 0025: 'C:\Windows\System32\'; 0026: 'C:\Program Files\'; 0027: 'C:\Users\87\Pictures\'; 0028: 'C:\Users\87\'; 0029: 'C:\Windows\System32\'; 002A: 'C:\Program Files\'; 002B: 'C:\Program Files\Common Files\'; 002C: 'C:\Program Files\Common Files\'; 002D: 'C:\ProgramData\Microsoft\Windows\Templates\'; 002E: 'C:\Users\Public\Documents\'; 002F: 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\'; 0030: 'C:\Users\87\AppData\Roaming\Microsoft\Windows\Sta rt Menu\Programs\Administrative Tools\'; 0031: '\'; 0032: '\'; 0033: '\'; 0034: '\'; 0035: 'C:\Users\Public\Music\'; 0036: 'C:\Users\Public\Pictures\'; 0037: 'C:\Users\Public\Videos\'; 0038: 'C:\Windows\Resources\'; 0039: '\'; 003A: 'C:\ProgramData\OEM Links\'; 003B: 'C:\Users\87\AppData\Local\Microsoft\Windows\Burn\ Burn\'; 003C: '\'; ... 00FF: '\'; 0100: 'C:\Users\87\Desktop\'; -- MfG, terence |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz