Special Folders in C++ Builder
-
Hallo zusammen,
ich möchte den Pfad z.B. zu diesem Ordner
C:\Documents and Settings\username\Application Data
automatisch ermitteln.
Unter http://dn.codegear.com/article/26676 habe ich eine funktion gefunden aber ich kriege sie nicht zum laufen. Das Problem: SHGetSpecialFolderLocation und LPITEMIDLIST werden nicht gefunden....
Muss man irgendwelche includes auch einbinden?? wenn dann welche??
Ich suche und versuche schon seit 2 Tage... vielleicht kann mir jemand helfenDanke!!!!
juliux
[cpp] void __fastcall TForm1::Button1Click(TObject *Sender) { //cb is a combo box, lb is a label int folder; switch (cb->ItemIndex) { case 0: folder = CSIDL_BITBUCKET; break; case 1: folder = CSIDL_CONTROLS; break; case 2: folder = CSIDL_DESKTOP; break; case 3: folder = CSIDL_DRIVES; break; case 4: folder = CSIDL_FONTS; break; case 5: folder = CSIDL_NETWORK; break; case 6: folder = CSIDL_PRINTERS; break; case 7: folder = CSIDL_PROGRAMS; break; case 8: folder = CSIDL_RECENT; break; case 9: folder = CSIDL_SENDTO; break; case 10: folder = CSIDL_STARTMENU; break; case 11: folder = CSIDL_STARTUP; break; case 12: folder = CSIDL_TEMPLATES; break; default: folder = -1; break; } if (folder >= 0) { LPITEMIDLIST pidl; if (SHGetSpecialFolderLocation(Handle,folder,&pidl) == NOERROR) { char buf[MAX_PATH]; SHGetPathFromIDList(pidl,buf); lb->Caption = buf; } } } [/cpp]
-
Hallo,
Du brauchst die shlobj.h
Bei WinAPI-Funktionen ist auch ein Blick ins MSDN sehr nützlich
http://msdn.microsoft.com/en-us/library/bb762203.aspx
-
Braunstein schrieb:
Hallo,
Du brauchst die shlobj.h
Bei WinAPI-Funktionen ist auch ein Blick ins MSDN sehr nützlich
http://msdn.microsoft.com/en-us/library/bb762203.aspxHi Braunstein,
danke für die schnelle Antwort.
Das hatte ich schon ausprobiert aber ich bekomme folgende Fehlermeldungen:[C++ Fehler] shobjidl.h(2372): E2238 Bezeichner 'FOLDERSETTINGS' mehrfach deklariert
[C++ Fehler] shobjidl.h(8279): E2238 Bezeichner 'DESKBANDINFO' mehrfach deklariert
[C++ Fehler] shlobj.h(1487): E2238 Bezeichner 'FVSHOWINFO' mehrfach deklariert
[C++ Warnung] shlobj.h(3487): W8017 Redefinition von 'DI_GETDRAGIMAGE' ist nicht identisch
[C++ Fehler] shlobj.h(4992): E2238 Bezeichner 'SHELLFLAGSTATE' mehrfach deklariertSogar bei einer Application mit nur einem Fenster und ein Button.....
-
Pack mal
#define NO_WIN32_LEAN_AND_MEAN
über den include.
-
Braunstein schrieb:
Pack mal
#define NO_WIN32_LEAN_AND_MEAN
über den include.
JAAAAAAA!!! juhu!! Es funktioniert.
Danke schön und schönes Wochenende