Pfad der Exe ermitteln. Hilfe!



  • Das tut nur, wenn du es nicht vorher gewechselt hast. 😃



  • estartu_de schrieb:

    Das tut nur, wenn du es nicht vorher gewechselt hast. 😃

    hmm aber welche motivation hat man, den aktuellen pfad neu zu setzen?



  • Hmm, ich wollte damals ne Datei aufmachen.
    Ist halt nur ne Falle, wenn man nicht dran denkt. 🙂



  • Wenn man deinem Programm via Parameter einen Pfad übergibt, dann wird dieser auch zu GetCurrentDirectory(). Genau das selbe, wenn man eine Datei mit "Öffnen mit..." mit deinem Programm öffnet. Deshalb benutze ich das nicht mehr. 😉



  • Ellek schrieb:

    Wenn man deinem Programm via Parameter einen Pfad übergibt, dann wird dieser auch zu GetCurrentDirectory(). Genau das selbe, wenn man eine Datei mit "Öffnen mit..." mit deinem Programm öffnet. Deshalb benutze ich das nicht mehr. 😉

    und das mit dem "Öffnen mit..." war genau das Phänomen, mit welchem ich zu kämpfen hatte. Ich hab jetzt beim instanzieren der Applikation ein 'GetCurrentDirectory' drinne und speichere den in einer member ab - so hab ich immer den aktuellen exe-Pfad, falls man den brauchen muss.

    oder gibts eben eine schlauere Anwendung davon? die im Link erklärte Methode passt mir irgendwie nicht so.



  • habs so gelöst

    inline CString GetAppPath()
    {
        TCHAR szPathName[MAX_PATH];
        ::GetModuleFileName(NULL, szPathName, MAX_PATH);
        LPTSTR pszFileName = _tcsrchr(szPathName, '\\') + 1;
        *pszFileName = '\0';
        return szPathName;
    }
    


  • Oder wenn man's bequemer mag

    nsPath::GetModuleFileName().GetPath()

    🤡



  • Ich weiß nicht, ob es bequemer ist, eine andere Klasse einzubinden. 😉



  • [werbepause]

    Wenn du einmal über einen Dateinamen der Form

    "\\server\share\some folder\"\file.dat

    gestolpert bist, wirst du...

    Eigentlich brauch' ich davon nur:
    - Trimmen + Unquote
    - Pfad + dateiname trennen
    - anhängen mit automatischen Backspace-Ausgleich
    - GetModuleFileName (!)
    - in Registry speichern, aus Registry laden.
    Die anderen 1001 Methoden sind nur zur Vollständigkeit. 🤡

    [/werbepause]



  • Ich machs immer mit GetCommandLine, da bekommt man Aufruf-Parameter noch gratis mit dazu 🙂 👍


Anmelden zum Antworten