Programm mit Parameter



  • Wie mache ich es, dass ich ich eine WinApi Anwendung mit einem bestimmten Parameter starte???

    z.B. Test.exe -x

    geht das überhaupt, wenn ja wie?

    mfg Anaconda



  • z.B. über Start/Ausführen oder über die Eingabeaufforderung. die WinMain hat doch extra einen Parameter dafür:

    int WINAPI WinMain(
    HINSTANCE hInstance, // handle to current instance
    HINSTANCE hPrevInstance, // handle to previous instance
    LPSTR lpCmdLine, // command line <----------------
    int nCmdShow // show state
    );



  • soweit bin ich schon gekommen, aber wie bau ich das jetzt in den Code ein, dass wenn die Anwendung mit dem Parameter x gestartet wird, etwas bestimmtes ausführt???

    if(lpCmdLine == "x")
    ...

    oder wie



  • lstrcmp

    warum programmierst du schon winapi, wenn du noch nicht mal einen string vergleichen kannst? 😕 😕 😕



  • Schande über mich (hab vor kurzem wieder mal VB 😞 geproggt daher der Vergleich ohne strcmp).

    Zurück zum Problem: es funzt auch mit strcmp nicht. Wie mache ich es, dass wenn ich die Anwendung mit dem Parameter e starte etwas anderes macht als wenn sie normal gestartet wird.

    mit der console gings noch einfach:

    int main(int argc, char *argv[])
    {
        bool xyz;
        if (argc == 5) {
            xyz = (tolower(argv[1][1]) == 'e');
    .
    .
    .
    

    sowas will ich mit einer winapi anwendung, ich hoffe ihr wisst jetzt was ich meine

    mfg Anaconda



  • ...WinMain(.......................) {
        if(lstrcmp(lpCmdLine, "e") == 0) {
            // anders starten
        }
    }
    


  • benutz besser strstr.
    Der Parameter ist "-e" und nicht "e".

    Und es könnten ja evtl. noch weitere Parameter folgen.

    Die beste Lösung: schreib dir einen Commandline Parser, der dir die Argumente schön der Reihe nach liefert.


Anmelden zum Antworten