Ab Verknüpfung Programmparameter aufrufen

Liebe Leute

Ich hab mal bei QT gesehen, dass eine Verknüpfung das CMD aufruft, aber mit einem Parameter.

Wie geht das, dass ich über eine normale Windowsverknüpfung ein Programm aufrufen kann, und gleichzeitig diesem Programm einen Parameter mitgeteilt wird? Ziel ist es, dass dasselbe Programm über verschiedene Modi per Doppelklick gestartet werden kann.

Wie muss die Verknüpfung aussehen?
Was muss ich im Programmcode schreiben, damit das Programm erkennt, mit welchem Parameter es gestartet wurde? argv[1]?

lg
Kalsan

Salve,

das Ganze ist nun erstmal keine C/C++ Frage, sondern eine Laufzeitumgebungsfrage … :wink:

Wie muss die Verknüpfung aussehen?

Im Explorer das Executable xx.exe suchen, dann per Rechtem Maus Click den Punkt „Create Shortcut“ auswaehlen. Dies erzeugt eine Datei „Shortcut to xx.exe“. Diesen Shortcut dann auf den Desktop ziehen und umbenennen (Im Deutschen heissen die Dinger „Verknuepfungen“)

Dann gehst du ebenfalls mit der rechten Maustaste auf den Shortcut und dann auf „Properties“ und traegst im Feld „Target“ ganz rechts hinter dem Executable Namen deine Parameter ein, also z.B.

c:\opt\MeineProgramme\xx.exe -i input -o output

Was muss ich im Programmcode schreiben, damit das Programm
erkennt, mit welchem Parameter es gestartet wurde? argv[1]?

argv[0] enthaelt den Executable Namen, normalerweise mit vollstaendigem Pfad.

Alle anderen Parameter (1…argc-1) enthalten die von dir spezifizierten Argumente. Ich empfehle die frei verfuegbare Version von getopt, da mit dieser dein Code auch portabel gestaltet werden kann.

Gruss
norsemanna

(Im Deutschen heissen
die Dinger „Verknuepfungen“)

Bist du Engländer oder Amerikaner? Nimmt mich nur Wunder :stuck_out_tongue_winking_eye:

c:\opt\MeineProgramme\xx.exe -i input -o output

Für was stehen in diesem Falle genau input und output? „Ausführen in“?

argv[0] enthaelt den Executable Namen, normalerweise mit
vollstaendigem Pfad.

Jep, damit mache ich meine Programme sicherer, in dem ich daraus Absolutpfade generieren lasse. Damit kann ich dafür sorgen, dass die Dateien auch bei fehlerhaften Parametern immer am gleichen Ort sind (wenn ich das will).

Alle anderen Parameter (1…argc-1) enthalten die von dir
spezifizierten Argumente. Ich empfehle die frei verfuegbare
Version von getopt, da mit dieser dein Code auch portabel
gestaltet werden kann.

Bahnhof. Was meinst du mit (1…argc-1)? Ich kenn nur argv[x] und argc…
Und: Was meinst du mit getopt?

Gruss
norsemanna

Liebe Grüsse und danke für deine Antwort
Kalsan

Howdy,

die Dinger „Verknuepfungen“)

Bist du Engländer oder Amerikaner? Nimmt mich nur Wunder :stuck_out_tongue_winking_eye:

nein, ich bin kein Engländer, auch wenn ich mich mit einem breiten texanischen „Howdy“ hier melde. Mein Windows ist halt in Englisch …

c:\opt\MeineProgramme\xx.exe -i input -o output

Für was stehen in diesem Falle genau input und output?

-i input und -o output sind Argumente deines Programmes, z.B. koennte mit -i die Eingabedatei spezifiziert werden und mit -o die Ausgabedatei.

Bahnhof. Was meinst du mit (1…argc-1)? Ich kenn nur argv[x]
und argc…

das war die Kurzform von argv[1] bis argv[argc-1]

Und: Was meinst du mit getopt?

getopt ist eine Unix/Posix Funktion, dazu siehe z.B. die Manual Page
http://linux.die.net/man/3/getopt
Das Ganze gibt es auch fuer Windows.

Gruss
norsemanna

1 Like

Hervorragend! Das Programm und die Shortcuts arbeiten wie am Schnürchen zusammen.

Vielen Dank!

*4u