Ergebnis 1 bis 9 von 9
  1. #1
    NoClose Wurm
    Registriert seit
    26.10.2008
    Beiträge
    185

    Standard Programmname rausfinden?

    Hey,
    In meinem C++ Programmname kommen Unicodezeichen vor, und nun möchte ich das Programm in einen bestimmten Ordner Kopieren können. Diesen Ordner habe ich zuvor mit getenv(); erkannt und dann als String vorliegen. Nun möchte ich gern wissen wie ich den Programmname meines c++ im Programm selbst Dynamisch auslesen kann (das unicode richtig dargestellt) und dann z.b per cout ausgeben kann, ohne das ein z.b H?.exe" rauskommt. Da ich das Programm Unabhängig des Dateinamen in einen Ordner kopieren können muss wäre mir das sehr Wichtig, finde allerdings nirgends dazu eine Funktion o.ä, hat dazu jemand eine Idee? Zur Not Poste ich gerne ein Teil des Sourcecodes

    Danke im Vorraus

  2. #2
    Moderator Avatar von Jut4h.tm
    Registriert seit
    25.06.2006
    Beiträge
    792

    Standard AW: Programmname rausfinden?

    ... in der main argv[0] google das mal ...

  3. #3
    Master of Porn Avatar von sp1nny
    Registriert seit
    28.05.2007
    Beiträge
    533

    Standard AW: Programmname rausfinden?

    Unter Windows kannst du GetModuleFileNameW aus der WinAPI benutzen:

    GetModuleFileNameW
    XMPP: sp1nny @ exploit.im
    MAIL: sp1nny @ tuta.io

    PGP:

    Wir müssen wissen — wir werden wissen.


  4. #4
    NoClose Wurm
    Registriert seit
    26.10.2008
    Beiträge
    185

    Standard AW: Programmname rausfinden?

    @Jut4h.tm
    Das geht nur wenn im Programmname kein Unicode vorkommt, was jedoch der Fall ist!

    @sp1nny
    kannst du mir dazu ein kleines Codebeispiel machen? Habe es nun versucht bekomme aber andauernd Fehler usw.. komme nicht so recht damit zurecht...

  5. #5
    Master of Porn Avatar von sp1nny
    Registriert seit
    28.05.2007
    Beiträge
    533

    Standard AW: Programmname rausfinden?

    Versuchs mal so:

    Code:
    #include <windows.h>
    
    int main(void)
    {
        WCHAR filename[MAX_PATH];
        DWORD lengthfn;
    
        lengthfn = GetModuleFileNameW(NULL, filename, sizeof(filename));
        WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE), &filename, lengthfn, NULL, NULL);
    
        return 0;
    }


    mfg
    Geändert von sp1nny (07.02.2012 um 23:18 Uhr)

  6. #6
    NoClose Wurm
    Registriert seit
    26.10.2008
    Beiträge
    185

    Standard AW: Programmname rausfinden?

    Habe es soeben versucht, es lässt sich Compilieren aber leider zeigts das immernoch nicht Korrekt an. Dort wo das unicode zeichen steht ist dann "H?.exe" anstelle von "Hexe.gif" (Das Unicodezeichen ist übrigens \u202e, falls das jemanden Hilft).
    Normalerweise sollte WriteConsoleW(); doch Unicode korrekt darstellen können?
    Nochmals Danke.

    mfg cy

  7. #7
    Trojaner Avatar von s3rb31
    Registriert seit
    21.01.2010
    Beiträge
    75

    Standard AW: Programmname rausfinden?

    Zitat Zitat von sp1nny Beitrag anzeigen
    Code:
    #include <windows.h>
    
    int main(void)
    {
        WCHAR filename[MAX_PATH];
        DWORD lengthfn;
    
        lengthfn = GetModuleFileNameW(NULL, filename, sizeof(filename));
        WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE), &filename, lengthfn, NULL, NULL);
    
        return 0;
    }

    Code:
    int main(void)
    Das käme bei C++-strict nicht durch.

    Außerdem würde ich einfach ne MessageBox zum austesten vorschlagen, viel einfacher:

    Code:
    int main()
    {
        wchar_t filename[MAX_PATH];
    
        GetModuleFileNameW(NULL, filename, sizeof(filename));
        MessageBoxW(0, filename, L"", 0);
    
        return 0;
    }

  8. #8
    Stanley Jobson Avatar von Bonkers
    Registriert seit
    01.02.2010
    Beiträge
    735

    Standard AW: Programmname rausfinden?

    Zitat Zitat von S3RB31 Beitrag anzeigen
    Außerdem würde ich einfach ne MessageBox zum austesten vorschlagen, viel einfacher:
    Eventuell kann die cmd.exe einfach keine Unicode-Zeichen anzeigen.

    Code:
    C:\Users\User>type C:\Windows\System32\cmd.exe
    Spielt euch ein schönes Lied auf der Konsole.

    Blackberry: der eine typ ist danach gestorben
    Bonkers: Echt?
    Blackberry: jep

  9. #9
    NoClose Wurm
    Registriert seit
    26.10.2008
    Beiträge
    185

    Standard AW: Programmname rausfinden?

    Zitat Zitat von S3RB31 Beitrag anzeigen

    Code:
    int main()
    {
        wchar_t filename[MAX_PATH];
    
        GetModuleFileNameW(NULL, filename, sizeof(filename));
        MessageBoxW(0, filename, L"", 0);
    
        return 0;
    }
    Das hat nun funktioniert ! Danke
    Werde mal etwas weiter experimentieren damit , so das ich die Funktion hinbekomme die ich brauch für mein Programm
    Danke nochmal an alle

    mfg Surflam

Ähnliche Themen

  1. [S] Programmname Vergessen
    Von Ne0x im Forum Anwendungssoftware
    Antworten: 2
    Letzter Beitrag: 31.07.2010, 10:37
  2. PW rausfinden
    Von Terminator05 im Forum Windows
    Antworten: 2
    Letzter Beitrag: 24.01.2008, 19:48

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •