Entwickler-Ecke

Windows API - kommandozeilen


maexel - Sa 05.04.03 11:38
Titel: kommandozeilen
wie kann ich denn kommandozeilen für mein programm programmieren?
bsp: myprog.exe -auto
wie kann man hier z.b. etwas für das "auto" programmieren?


wulfskin - Sa 05.04.03 12:55

Hallo Maexel!

Du musst auf Parameter reagieren die in der Function ParamStr zurückgegeben werden. Am besten du gehst die Parameter von 1-Ende durch (in ParamStr(0) steht der Dateiname) und überprüfst diese auf Auto.
Das ganze würde ich im OnActivate-Ereignis machen!

Gruß wulfskin!


Delete - Sa 05.04.03 14:28

wulfskin hat folgendes geschrieben:

Das ganze würde ich im OnActivate-Ereignis machen!

Gibt es einen Grund dafür warum jedes mal, wenn ich die Titelleiste des Programmes anklicke, um damit weiterzuarbeiten, die Kommandozeile geparst werden sollte? :roll: Hast du schon mal wärend das Programm läuft einen Kommandozeilenparameter übergeben?

Was spricht dagegen, die Kommandozeile auszuwerten, wann es Sinn macht? Nämlich ein mal im OnCreate-Ereignis.


wulfskin - So 06.04.03 01:18

Luckie hat folgendes geschrieben:
Gibt es einen Grund dafür warum jedes mal, wenn ich die Titelleiste des Programmes anklicke, um damit weiterzuarbeiten, die Kommandozeile geparst werden sollte? :roll: Hast du schon mal wärend das Programm läuft einen Kommandozeilenparameter übergeben?
Zum ersten: Das Ereignis tritt nicht jedesmal auf, wenn man auf die Titelleiste klickt. Probier es mal aus!
Zum zweiten: Manchmal ist das Programm bereits gestartet und es wird im Explorer eine Datei angeklickt, die mit diesem Programm verbunden ist. Dann muss man doch die Parameter auswerten.

Gruß wulfskin!


Delete - So 06.04.03 03:54

wulfskin hat folgendes geschrieben:

Zum zweiten: Manchmal ist das Programm bereits gestartet und es wird im Explorer eine Datei angeklickt, die mit diesem Programm verbunden ist. Dann muss man doch die Parameter auswerten.

Das ist was anderes. Komandozeilen werden bei start der Anwendung von der Konsole (, wenn ich das _Kommando_ eingebe) ausgewertet. Das was du meinst müßte man über COM lösen, den woher soll Windows wissen, dass die angeklicktze Datei mit dem schon gestarteten programm weiterverarbeitet werden soll und nicht eine neue Instanz gestartet werden soll?
Und das OnActivate nicht bei jedem Klick auf die Titelleiste aufgerufen wird ist auch klar, war ja nur ein Beispiel.


wulfskin - So 06.04.03 11:50

Ok, alles klar! Danke Luckie!

Hast du zufällig ein Code-Beispiel, dass zeigt, wie man "Parameter" mit COM auch während der Laufzeit abfangen kann?

Gruß wulfskin!


Delete - So 06.04.03 16:09

Nein, sorry. Ich bin froh, wenn ich die Bezeichnung COM richtig buchstabieren kann. :mrgreen: