Autor Beitrag
D2505
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 62
Erhaltene Danke: 18


Delphi (7 PE + Lazarus ) ;Java ( Eclipse),
BeitragVerfasst: Do 13.10.11 16:49 
mit
forcedirectories('C:\programm\bsp') kann man ja einen Ordner anlegen
wie lege ich den einen Ordner in
C:User\Nutzer\Documents\Programm
an,da die Variable Nutzer ja ständig wechselt ?
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Do 13.10.11 16:52 
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
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"

  // get IMalloc interface pointer
  if (SHGetMalloc(pMalloc) <> S_OK) then
  begin
    MessageBox(hWindow, 'Couldn''t get pointer to IMalloc interface.',
               'SHGetMalloc(pMalloc)'16);
    Exit;
  end;

  // retrieve path
  SHGetSpecialFolderLocation(hWindow, Folder, pidl);
  GetMem(Path, MAX_PATH);
  SHGetPathFromIDList(pidl, Path);
  Result := Path;
  FreeMem(Path);

  // free memory allocated by SHGetSpecialFolderLocation
  pMalloc.Free(pidl);
end;

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS