AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Get Windows Special Folders

Ein Thema von terence14 · begonnen am 11. Jan 2013 · letzter Beitrag vom 14. Jan 2013
Antwort Antwort
terence14
(Gast)

n/a Beiträge
 
#1

Get Windows Special Folders

  Alt 11. Jan 2013, 09:12
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

Geändert von terence14 (29. Mär 2013 um 14:40 Uhr)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

AW: Get Windows Special Folders

  Alt 11. Jan 2013, 09:48
Die sollten schon funktionieren, aber je nach Delphi-Version sind einige Konstanten noch unbekannt.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Get Windows Special Folders

  Alt 11. Jan 2013, 10:42
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...
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: Get Windows Special Folders

  Alt 11. Jan 2013, 11:57
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
  Mit Zitat antworten Zitat
terence14
(Gast)

n/a Beiträge
 
#5

AW: Get Windows Special Folders

  Alt 14. Jan 2013, 12:41
@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
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#6

AW: Get Windows Special Folders

  Alt 14. Jan 2013, 14:38
Das gab es HIER schon...
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#7

AW: Get Windows Special Folders

  Alt 14. Jan 2013, 14:40
Das sollte schon seine Richtigkeit haben. Allerdings hat MS seit Vista neue Methode der spez. Ordner Ermittlung eingeführt.
  Mit Zitat antworten Zitat
terence14
(Gast)

n/a Beiträge
 
#8

AW: Get Windows Special Folders

  Alt 14. Jan 2013, 15:34
Das gab es HIER schon...

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

Geändert von terence14 (14. Jan 2013 um 15:36 Uhr) Grund: hinzugefügt: "87 ist mein LoginName :)"
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:54 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