Command Line



  • Hallo,

    wenn ich ein Windows- Programm über die Konsole wie folgt starte,

    Blabla.exe -s

    wie kann ich dann in meinem Programm das "-s" extrahieren, bzw untersuchen, ob mein Programm mit Parameter gestartet wurde? MFG, und vielen Dank im Vorraus, '][' !



  • Hi!

    Das funzt etwa so:

    // includes
    
    int main(int argc, char *argv[]){
    .
    .
    .
    .
    .
    }
    

    Jetzt kannst du per argv[1],argv[2], usw. auf die Parameter zugreifen.
    argv[0] ist immr der pfad. Wenn du's aber über dioe konsole aufrufst is das immer der name vom Programm.

    argc gibt die anzahl der parameter an.(is logischer weise >=1)

    Hoffe ich konnte helfen! 😉



  • Hi,

    habe ja keine main, sonder nur ne WinMain(...)

    ich gehe wie gesagt davon aus, dass es sich um ein WindowsProgramm handelt.



  • Die WinMain hat einen Parameter, der da heißt lpCmdLine...

    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
    				   LPSTR lpCmdLine, int nCmdShow)
    

    Das ist die Kommandozeile, die beim Start übergeben wurde...



  • LPSTR lpCmdLine ist alles was du auf der Kommadozeile tippes ohne das Programm welches du aufrufst

    d.h.
    wenn du das folgende tippst

    Blabla.exe -s -itestfile

    so steht in lpCmdLine "-s -itestfile"

    Im unterschied zu C ist der Programmname nicht mit dabei

    Zum Auswerten der KOmmandozeile in einer stabline Weise habe ich in diesen Foren schon eine gute Lösung gesehen


Anmelden zum Antworten