ist das möglich?
Ich möchte eine Variable übergeben Formsanwendung an Konsolenanwenung
Lars schrieb: > ist das möglich? warum nicht, jedes Consolen programm hat doch einen input, output und error stream. Dort kann man daten reinscheiben bzw. auslesen.
ich möchte die Varibale int i = 122 von der Formsanwendung an die Konsolenanwendung übergeben. Input(i); So geht es aber nicht glaube ich!
Lars schrieb: > ich möchte die Varibale int i = 122 von der Formsanwendung an die > Konsolenanwendung übergeben. so wird dann bestimmt nichts. Das Konsolenprogramm muss schon die Varible per input einlesen oder als Parameter übergeben bekommen. Aber mit den wenigen Infos kann hier niemand weiter helfen.
1 | private void button1_Click(object sender, EventArgs e) |
2 | {
|
3 | Process JpegToSWF = new Process(); |
hier ist die EXe die ich ausführen will. Nun sollte da noch die in der Formsanwendung global definierte Variable Variable i an die Konsolenanwendung jpegtoswf übergeben werden.
Lars schrieb: > Nun sollte da noch die in der Formsanwendung global definierte Variable > Variable i an die Konsolenanwendung jpegtoswf übergeben werden. man kann keine Variabel übergeben, nur daten. programm.exe i=5 dann musst du es nur noch in deinen konsolenprogram über ARG einlesen.
int argument = args[i]; so dann oder
Lars schrieb: > int argument = args[i]; > > so dann oder so bestimmt nicht. Argumente sind erstmal Strings.
OK dann so string argument = args[i]; Und als Output des Konsolenprogramms die Varibale i nach dem Process?
1 | private void button1_Click(object sender, EventArgs e) |
2 | {
|
3 | Process JpegToSWF = new Process(); |
4 | |
5 | jpegtoswf.exe i |
1 | string strArguments = string.Format("{0} {1} {2} {3}", i, picturename,i); |
Hier bekomme ich den Fehler das Null erhalten sein soll! Kann mir jemand sagen was in der Zeile nicht stimmt?
Lars schrieb: > Kann mir jemand sagen was in der Zeile nicht stimmt? zähle doch einfach die die {} und die anzahl der Parameter.
Peter II schrieb: > warum nicht, jedes Consolen programm hat doch einen input, output und > error stream. Dort kann man daten reinscheiben bzw. auslesen. Das geht immer, aber ein Konsolenprogramm unter Windows kann doch auch die Win32-API nutzen und damit alles was es so an Interprozess-Kommunikation gibt, Pipes, memory mapped files und und und.... Unter Linux sicher auch. Gruss Reinhard
@Lars: Es gibt zillionen Möglichkeiten, das zu tun. Alles in allem fällt das unter IPC, was du gerne als Suchbegriff verwenden kannst, um mehr zu erfahren. Gibt's bestimmt auch eine Menge Beispiele für Windows in der Sprache deiner Wahl zu. Wenn es wirklich nur um einen einzelnen Wert geht, ist die Übergage per Aufrufparameter sicherlich die Sinnvollste. Zurückgeben kannst du dann am einfachsten im stdout der Konsolenanwendung. IIRC kannst du CreateProcess() Pipes für die Standard-Streams des neuen Prozesses übergeben, um mit diesem zu kommunizieren. Eventuell ist es sinnvoll, dafür zu sorgen, dass die Konsolenanwendung kein Fenster erzeugt. Das ist immer so hässlich unter Windows, wenn unvermittelt irgendwelche leeren (weil Inhalt per Pipes bearbeitet wird) Konsolen-Fenster aufpoppen. Die $USER dann evtl. auch noch schließen und so zu blöden Fehlern führen kann. Reinhard Kern schrieb: > Unter Linux sicher auch. Klar. int i = 122; if (!fork()) { /* Nur noch die Standard-Streams verwenden. */ } i behält übers Forken seinen Wert :D *) Nein, das alleine bringt nichts, da fehlt mindestens ein wait() und überhaupt ist das so Käse.
In Befehlszeilenargumente schreiben ich dann die Variablennamen rein und weise die dann im Quellcode den Variablen die Argumente zu Ist das so richtig?
Fehler Die Eingabezeichenfolge hat das falsche Format.
1 | string mengeanBildern = args[2]; |
2 | int i = Convert.ToInt32(mengeanBildern); |
Wo ist denn da der Formatfehler?
Lars schrieb: > Fehler > > Die Eingabezeichenfolge hat das falsche Format. string mengeanBildern = > args[2]; > int i = Convert.ToInt32(mengeanBildern); > > Wo ist denn da der Formatfehler? kannst du überhaupt etwas von alleine? Woher sollen wir denn wissen was in den string mengeanBildern drin steht? scheinbar ja wohl keine Zahl.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.