Seite 1 von 1
[C]EXE mit parametern ausführen
Verfasst: So Okt 05, 2014 1:37 pm
von Ostrich
hallo ich
Möchte in meinem code (Programm) eine weitere Exe mit Parametern aufrufen.
Habe leider nichts brauchbares gefunden
Re: [C]EXE mit parametern ausführen
Verfasst: So Okt 05, 2014 1:56 pm
von cloidnerux
Wir haben dazu was im Tutorial:
http://www.proggen.org/doku.php?id=c:tutorial:params
So wird auch das mit dem "auf die Exe ziehen" aus deinem anderen Post erschlagen, wenn ich mich richtig errinere.
Re: [C]EXE mit parametern ausführen
Verfasst: Mo Okt 06, 2014 1:34 pm
von Ostrich
Hi
Super dank dir, dann werde ich mich damit mal befassen
Re: [C]EXE mit parametern ausführen
Verfasst: Mo Okt 06, 2014 1:59 pm
von Ostrich
Hi
mit dn parameern und das schieben auf die kompilierte exe klappt super.
danke
ich gehe davon aus, das die Sortierung welches Argument Nr. 1 ist Alphabetisch erfolgt (also wenn ich 2 dateien drauf schiebe)
Aber meine eigentliche Frage hier war. wie ufe ich in meinem Programm z.B. Notepad.exe (oder ein eigenes) auf. und das dann mit argumenten
ShellExecute hab ich gefunden. Aber gibt es noch was anderes?
Re: [C]EXE mit parametern ausführen
Verfasst: Mo Okt 06, 2014 2:56 pm
von cloidnerux
Aber meine eigentliche Frage hier war. wie ufe ich in meinem Programm z.B. Notepad.exe (oder ein eigenes) auf. und das dann mit argumenten
ShellExecute hab ich gefunden. Aber gibt es noch was anderes?
Die Funktion "system" sollte das können:
http://www.cplusplus.com/reference/cstdlib/system/
Re: [C]EXE mit parametern ausführen
Verfasst: Mo Okt 06, 2014 3:54 pm
von Ostrich
Hi danke ja klappt soweit gut. jetzt noch eine erweiterung
In dem ordner meines Programms ist ein ordner \\Tools\ in dem das Prog Notepad.exe enthalten ist. das wollte ich öffnen.
Aber so funktioniert es nicht:
Habe dann versucht das Arbeitsvezeichnis auf diesem weg zu wehcseln.
Code: Alles auswählen
char Verzeichnis[900];
getcwd(Verzeichnis,sizeof(Verzeichnis));
printf("Das aktuelle Arbeitsverzeichnis ist:\n%s\n",Verzeichnis);
chdir("%s\\Tools\",Verzeichnis);
//system("Notepad.exe");
klappte aber auch nicht
er hat anscheinend ein problem mit dem hier
Unknown escape sequence \T kommt vom kompiler
Vielen dank für die Hilfe bisher. Mir gefällt, das hier nicht unnötige kommentare wie in den Anderen Foren kommen.
Dort wäre ich shcon gefragt worden: "Warum ich Notepad nicht so öffne"
DANKE
Re: [C]EXE mit parametern ausführen
Verfasst: Mo Okt 06, 2014 4:15 pm
von cloidnerux
er hat anscheinend ein problem mit dem hier
Unknown escape sequence \T kommt vom kompiler
Laut Doku kann chdir keine Textersetzungen à la %s.
Du musst dir erst deinen Text zusammen bauen:
Code: Alles auswählen
char text[100];
sprintf(text, "%s\\Tools", toolDir);
chdir(text);
Anscheinend ist bei dir irgendwas mit den Backslashes(\) nicht richtig. In Strings musst du immer zwei Backslashes machen, damit es im Text als einer erkannt wird, da der backslash als "Escape" Zeichen genutzt wird, um besondere Zeichen(\n neue Zeile, \r ein Zeichen zurück) darzustellen.
Re: [C]EXE mit parametern ausführen
Verfasst: Mo Okt 06, 2014 4:19 pm
von Ostrich
Hi
weitere Punkt wo ih hänge. ich möchte Parameter übergeben, die in einer variablen gespeichert sind (z.B. ein dateiname, den ich übergeben möchte)
Bsp. ich habe ein programm, was bmp in png convertiert, dies möchte ich ausführn und Parameter übergeben
Code: Alles auswählen
printf ("Bitte Quelldatei angeben: \n");
scanf( "%s", &filename[0] ); // Adresse des ersten Buchstabens
printf( "Sie gaben folgenden String ein: %s\n", filename );
system("convert.exe filename filename.png");
klappt auch nicht.
Re: [C]EXE mit parametern ausführen
Verfasst: Mo Okt 06, 2014 4:47 pm
von cloidnerux
Bsp. ich habe ein programm, was bmp in png convertiert, dies möchte ich ausführn und Parameter übergeben
Code: Alles auswählen
printf ("Bitte Quelldatei angeben: \n");
scanf( "%s", &filename[0] ); // Adresse des ersten Buchstabens
printf( "Sie gaben folgenden String ein: %s\n", filename );
system("convert.exe filename filename.png");
klappt auch nicht.
An dieser Stelle kommt der obligatorische Link:
http://www.proggen.org/doku.php?id=faq:frageformulieren
Ich weiß nicht was du versuchst, aber in deinem Code machst du Folgendes:
Einen Text in eine Variable einlesen, die "filename" heißt, diese Variable ausgeben und dann einen cmd-Aufruf mit folgendem Inhalt zu starten:
"convert.exe filename filename.png"
Ich gehe mal davon aus, dass du hier statt "filename" den Inhalt der Variablen "filename" ausgeben wolltest.
Dafür musst du aber den Inhalt in einen Text kopieren, auch hier hilft dir wieder sprintf:
Code: Alles auswählen
char command[200];
char filename[200];
sprintf(command, "convert.exe %s %s.png", filename, filename);
system(command);
Programmieren bedeutet einer Maschine Anweisungen zu geben. Und wenn du sie nicht Anweist, den Inhalt aus einem Text an eine bestimmte Stelle in einem anderen Text zu kopieren, dann wird es auch nicht gemacht.
Bitte denke immer erst darüber nach, ob das was du Programmierst auch sinn macht.