Den Name der Exe ermitteln



  • Hallo,
    danke für den Hinweis, allerdings funktioniert das bei mir für WinCE 5 nicht, da die Shlwapi.h nicht verfügbar ist.

    Da werde ich wohl irgendwie den String teilen müssen und neu zusammenfügen.



  • _splitpath



  • hmmpf... dafür bin ich wohl zu unfähig, damit umzugehen.



  • Tja, dann kann man kaum noch helfen.
    Google spuckt sofort Beispiele aus.



  • Ich finde es immer wieder erstaunlich, dass sich User nicht trauen, sinnnlose Beiträge mit ihrem Nickname zu posten, sondern dafür den Gastnamen verwenden...

    Vielen Dank für die wervolle Hilfe...

    Kann es sein, dass Du selber nach Hirn suchst?

    Ach ja Edit:

    Ich bin schon in der Benutzung von Google vertraut. Wenn die Beispiele für mich verständlich wäre, hätte ich nicht nachgefragt...



  • _splitpath wäre auch etwas oversized. Hier ne andere Lösung für den Austausch der Extension:

    char *p = strrchr (pszExeFile, '.');
    if (p)
    {
       strcpy (p, ".ini");
    }
    

  • Mod



  • Hallo zusammen,

    vielen Dank für die Tipps!

    Ich hab schon mal selber ein wenig versucht dahinter zu kommen und folgendes überlegt, wobei ich da immer noch das Problem habe, dass ich einen Filepointer benötige, um diese Ini dann öffnen zu können. So stelle ich mir das jedenfalls in meinem Anfänger-Hirn vor... 😕

    TCHAR fname[MAX_PATH];
    			int nLen = GetModuleFileName(NULL, fname, MAX_PATH);
    			lstrcpy(&fname[nLen-3], L"txt");
    			MessageBox(0, fname, 0, MB_OK);
    

    Die für mich als Kontrolle eingefügte MsgBox ist natürlich überflüssig... sie sollte mir nur das Ergebnis zeigen, ob das so richtig ist.

    Allerdings bekomme ich nun eine Fehlermeldung: expected 'const char *' but found 'wchar_t *',
    wenn ich versuche fname im read-Modus zu öffnen:

    FILE* fp = fopen ( fname, "r" );
    

    Ich weiss... für Euch ist mein Problem wahrscheinlich so dermassen trivial, aber ich brech mir hier gerade die Daumen ab dabei. 😕

    Edit:

    Zum Glück sind die Daumen nicht ganz weg...
    Ich hab das jetzt so gelöst:

    TCHAR fname[MAX_PATH];
    			int nLen = GetModuleFileName(NULL, fname, MAX_PATH);
    			lstrcpy(&fname[nLen-3], L"txt");
    
    			char fname_2[MAX_PATH];
    			wcstombs(fname_2, fname, sizeof(fname_2));
    
     FILE* fp = fopen ( fname_2, "r" );
    

    War ds eine schwere Geburt... 😃


  • Mod

    Mit PathRenameExtension wäre es weitaus einfacher gewesen.
    http://msdn.microsoft.com/en-us/library/bb773749(VS.85).aspx

    BTW: Dein Code geht davon aus,dass Deine Datei eine Endung mit drei zeichen (EXE).
    Das muss aber nciht sein.



  • Seine Datei ist halt ne .exe

    PathRenameExtension:

    Pitter (c) schrieb:

    danke für den Hinweis, allerdings funktioniert das bei mir für WinCE 5 nicht, da die Shlwapi.h nicht verfügbar ist.



  • helper1 schrieb:

    Seine Datei ist halt ne .exe

    PathRenameExtension:

    Pitter (c) schrieb:

    danke für den Hinweis, allerdings funktioniert das bei mir für WinCE 5 nicht, da die Shlwapi.h nicht verfügbar ist.

    Jep, in diesem Fall ist es immer eine Exe, deshalb kann ich auch mit den Einschränkungen hier leben.

    Genau da liegt das Problem:
    PathRenameExtension() ist bei CE5 und hier bei meiner CE6-Version jedenfalls nicht verfügbar...

    Deshalb kämpfe ich hier ja manchmal mit den einfachsten Dingen... 😞


Anmelden zum Antworten