Benutzerverzeichnis auslesen



  • hi,
    ich brauch ne funktion mit der ich das Benutzerverzeichnis des momentan angemelden benutzers bekomme, zb:
    C:\Dokumente und Einstellungen\admin

    Ziel
    ich will verknüpfungen auf desktop und Autostart (Startmenü) speichern.



  • Wie kommst du darauf, dass die VCL etwas so Systemabhängiges kapselt? WinAPI ist da ganz klar dein Freund.... Mir war da gabs was ala SHGetSpecialFolder oder so...

    ->Verschoben



  • Das geht zum Beispiel mit SHGetFolderPath. Für den Dektop nimmst Du CSIDL_DEKTOP, für das Startmenü CSIDL_STARTMENU (oder CSIDL_PROGRAMS für Startmenü/Programme) für den zweiten Parameter.



  • Danke, werds ausprobieren.



  • also dass is nun die api funktion:

    HRESULT SHGetFolderPath(

    HWND hwndOwner,
        int nFolder,
        HANDLE hToken,
        DWORD dwFlags,
        LPTSTR pszPath
    );

    wenn ich das nun das bsp aus msdn im builder umsetze:

    TCHAR szPath[MAX_PATH];
    if(SUCCEEDED(SHGetFolderPath(NULL,
    CSIDL_PERSONAL|CSIDL_FLAG_CREATE,
    NULL,
    0,
    szPath)))
    {
    PathAppend(szPath, TEXT("New Doc.txt"));
    HANDLE hFile = CreateFile(szPath, ...);
    }
    sagt er, dass er die funktion nicht findet, was nun?



  • Erstens sollte der Funktionsaufruf wohl so aussehen:

    SHGetFolderPath(NULL,CSIDL_PERSONAL|CSIDL_FLAG_CREATE,NULL,SHGFP_TYPE_CURRENT,szPath);
    

    und zweitens hast du aus shlobj.h eingebunden?

    Da kommt man ja ganz durcheinander, wenn du beim Editieren den Code vollständig änderst 😞



  • also in dem kruscht von msdn steht auch nichts von einer shlobj.h
    Danke

    jetzt hab ich nur noch diese meldungen aus shlobj.h:

    [C++ Fehler] shlobj.h(1762): E2238 Bezeichner 'FVSHOWINFO' mehrfach deklariert
    [C++ Fehler] shlobj.h(1936): E2238 Bezeichner 'FOLDERSETTINGS' mehrfach deklariert
    [C++ Fehler] shlobj.h(3717): E2238 Bezeichner 'DESKBANDINFO' mehrfach deklariert
    [C++ Fehler] shlobj.h(4808): E2238 Bezeichner 'SHELLFLAGSTATE' mehrfach deklariert

    wie krieg ich die weg



  • Also auf der Seite, auf die -King- verlinkt hat steht das mit shlobj.h doch drauf 😕
    Hast du vor shlobj.h auch windows.h eingebunden - wird eigentlich immer benötigt 🙄 - kann aber auch sein, dass es an was anderem liegt 😃




Anmelden zum Antworten