Pfad der .exe ermitteln.



  • @ bigborre
    an deiner seite muss man sich irgentwie einloggen



  • Selber machen 😉

    void CutEndOfString (char *lpString, char *lpStringToCut)
    {
        int iStringLength = strlen (lpString);
        int iCharsToCut = strlen (lpStringToCut);
        if (iStringLength < iCharsToCut)
        {
            strcpy (lpString, "");
            return;
        }
    
        int iCutting = iStringLength - iCharsToCut;
    
        int i = iStringLength;
        while (i > iCutting)
        {
            lpString[i] = ' ';
            --i;
        }
    
        lpString[i] = '\0';
    }
    
    char *FormatFileString (char *fileString)
    {
        int iLen = lstrlen (fileString);
        if (iLen > MAX_PATH)
            return NULL;
    
        char *data = new char[MAX_PATH];
    
        int f = 0;
        for (int i = (iLen - 1); fileString[i] != '\\'; --i, ++f)
            data[f] = fileString[i];
    
        data[f] = '\0';
    
        iLen = lstrlen (data);
        if (iLen > MAX_PATH)
            return NULL;
    
        char *result = new char[MAX_PATH];
    
        f = 0;
        for (int i = (iLen - 1); i >= 0; --i, ++f)
            result[f] = data[i];
    
        result[f] = '\0';
    
        delete [] data;
    
        return result;
    }
    
    char *FormatPathString (char *fileString)
    {
        LPSTR lpString = FormatFileString (fileString);
        CutEndOfString (fileString, lpString);
    
        return fileString;
    }
    

    Das sind 3 Funktionen, die ich mal gebastelt habe.
    Wie sauber diese sind, könnt ihr ja mal beurteilen jedenfalls funktionieren sie einwandfrei 🙂



  • gibts nicht ne fkt namens "rfind" oder so was? ^^
    ging eigtl so in etwa:

    string pfad = gesamter_pfad.substring (1, gesamter_pfad.rfind ("\\"));
    

    hf 😉



  • bigborre schrieb:

    @ Chew-z nutz nix, das ganze ist in einer DLL, nix mit main
    Danke trotzdem

    @ Delryn : sieht kompliziert aus, kannste das mal kurz erläutern?
    Speziell wo dann mein String steht mit dem Pfad.

    deine include dateine?? wo kommen die her, mein Programm findet die nicht
    in der letzten Zeile gibst du den String aus stimmt?

    DLL...hmmm...hört sich ganz nach windows an.
    dann kannste auch gleich microsoft spezifische funktionen benutzen:

    #include <direct.h>  
    	#include <windows.h>  
    
    	char cwd[MAX_PATH+1];
    	_getcwd(cwd,MAX_PATH);
    
    	cout << cwd << endl;
    

    🙂



  • GetModuleFileName



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • ...



  • Problem gelöst, Forum suche hilft halt doch.

    habe da folgenden link entdeckt
    http://www.winapi.net./index.php?inhalt=s14

    Jetzt habe ich aber immer noch ein Problem, die Funktion GetModulFileName gibt mir den gasamten Pfad der Anwendung zurück:
    C:\....\Testordner\text.exe

    Ich möchte aber nur C:\....\Testordner\ wie kann ich das realisieren?

    EDIT: Wie doof muss man sein, es wird auf der selben Seite erklärt 😃

    Funktion _splitpath http://msdn.microsoft.com/de-de/library/e737s6tf%28v=vs.80%29.aspx



  • agga ugga schrieb:

    DLL...hmmm...hört sich ganz nach windows an.
    dann kannste auch gleich microsoft spezifische funktionen benutzen:

    Was aber auch ziemlich erstaunlich ist in einem Forum mit dem Titel WinApi!



  • Ich schmeiße mal noch PathRemoveFileSpec in den Thread 😉


Anmelden zum Antworten