Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Kommandozeile
robot
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

Kommandozeile

beantworten | zitieren | melden

Hallo!

Ich möchte gerne ein kommandozeilen-basiertes Programm von einer C#-Anwendung steuern.
Das Programm ähnelt "telnet". Wenn man in der MS-DOS Eingabeaufforderderung von WinXP telnet eingibt, wird ja telnet gestartet und es erscheint:
Willkommen

Das Eingabezeichen ist 'CTRL++'

Microsoft Telnet>


Hinter den "Microsoft Telnet>" kann man dann ja die entsprechenden Befehle eingeben.
Bei dem Programm, das ich steuern möchte ist das genauso. Wenn man "programm.exe" aufruft, erscheint ein Text und eine Zeile, in der man den jeweiligen Befehl eingeben kann. Man kann dieses Programm also nicht wiefolgt steuern durch den Aufruf "programm.exe -parameter" steuern, sondern muss erst "programm.exe" starten und kann dann hinter einenm ">" einen Befehl wie z.B. "help" eingeben. (Bei telnet funktioniert ja auch der Aufruf "telnet.exe -parameter". Insofern hinkt der Vergleich mit dem Programm, das ich aufrufen möchte, nur telnet ist ja bei jeder Windowsinstallation standardmäßig mit dabei, daher habe ich telnet als Beispiel gewählt).

Bei dem Programm, dass ich steueren möchte, müsste ich nachdem ich es gestartet habe einen Befehl aufrufen, der eine Verbindung startet, dann müsste ich verschiedene andere Befehle aufrufen, mit denen ich Daten verschicken und abrufen usw. kann, d.h. die C#-Anwendung müsste quasi das "Kommandozeilen-Programm" einmal starten und dann die verschiedenen Befehle eingeben, das "Kommandozeilen-Programm" darf also nicht für jeden Befehl jeweils neu gestarten werden, wie das ja bei Aufrufen von Programmen in der Form: "programm.exe -parameter" der Fall ist.

Ich wäre für jede Hilfe dankbar!
Gruß,
Jan
private Nachricht | Beiträge des Benutzers
Fabse
myCSharp.de - Member



Dabei seit:
Beiträge: 124

beantworten | zitieren | melden

ok und jetzt sagst du uns noch, um was es sich für ein programm wirklich handelt und was du eigentlich machen willst. meistens gibt es bessere lösungen, die dann auch noch einfacher sind
private Nachricht | Beiträge des Benutzers
robot
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

beantworten | zitieren | melden

Danke für deine Antwort. Allerdings, gibt es hierbei keine bessere Lösung. Bei dem Programm handelt es sich um eine Art "Entwicklungsumgebung" für ein Mikrocontrollerboard. Es handelt sich dabei um einen C-Dialekt, der mit Hilfe einer Virtual Machine auf dem Mikrocontroller ausgeführt. Zudem ist die Virtual Machine interaktiv, d.h. ich kann über den PC jede beliebige Funktion des Programmes, das die Virtual Machine ausführt, aufrufen.
Bei der Verbindung, die ich erwähnt habe, handelt es sich somit um eine Verbindung übder die serielle Schnittstelle. Das Protokoll über das das Programm auf dem PC, das ich über die Kommandozeile steuern möchte, mit dem Mikocontroller kommuniziert ist nicht offengelegt. Die einzige Möglichkeit besteht also in der Steuerung über die Kommandozeile.
private Nachricht | Beiträge des Benutzers
Pulpapex
myCSharp.de - Member



Dabei seit:
Beiträge: 939
Herkunft: Rostock

beantworten | zitieren | melden

Man kann aus .Net Anwendungen heraus Konsolen-Programme starten und bedienen. Guck dir mal die Klassen System.Diagnostics.ProcessStartInfo und System.Diagnostics.Process an.

Process hat eine StandardInput-Eigenschaft, an die Text an die Prozess-Konsole gesendet werden kann. Damit das funktioniert muss unter anderem ProcessStartInfo.RedirectStandardInput = true gesetzt werden. Näheres steht in der Hilfe.


Gruss
Pulpapex
private Nachricht | Beiträge des Benutzers
S.H.-Teichhof
myCSharp.de - Member

Avatar #avatar-2460.jpg


Dabei seit:
Beiträge: 1.549
Herkunft: Sindringen

beantworten | zitieren | melden

Vieleicht hilft dir auch das Prozess/Anwendung aus eigenem Programm starten Weiter
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
private Nachricht | Beiträge des Benutzers