Lesen und schreiben in einer Eingabeaufforderung den Befehl console mit VB.net

Ich habe eine ähnliche Frage woanders, aber vielleicht habe ich nicht bitten, es der richtige Weg, oder ich war nicht klar genug, also Frage ich wieder.

Dies ist, wo ich will:

  1. Öffnen Sie eine windows-Eingabeaufforderung
  2. Führen Sie eine DOS-Anwendung über einen dos-Befehl
  3. Lesen Sie den zurückgegebenen text, der angezeigt wird, in der dos-box und zeigen Sie Sie in einer text-box in meine windows form. Dieser muss in regelmäßigen Abständen wiederholt werden (sagen wir mal jede Sekunde) und das dos-Fenster nicht geschlossen werden soll.

Habe ich schon im Kreis, versucht den Prozess und die StartInfo-Befehle, aber Sie werden nur führen Sie die Anwendung und beenden Sie den Prozess sofort. Ich brauche, um die dos-box öffnen und Lesen zu halten, wird jeder neue text Hinzugefügt, um es von der dos-Anwendung. Auch ich kam in diesem thread zu beantworten scheint mein problem, aber es ist in C# und ich konnte nicht konvertieren:

Lesen Sie die Windows-Eingabeaufforderung STDOUT

Habe ich zu dem Teil, wo ich die Eingabeaufforderung öffnen und die Anwendung gestartet, aber ich weiß nicht, wie die Daten zu Lesen, dass es zurück an die dos-box Konsole hin und wieder. Ich will ständig auf änderungen zu überprüfen, so dass ich nach Ihnen zu handeln, vielleicht mit einem timer-Steuerelement.

Bitte helfen.

Dank!

Mir lief der code wurde freundlicherweise zur Verfügung gestellt von Stevedog und verwendet es wie folgt:

  Private WithEvents _commandExecutor As New CommandExecutor()

  Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    _commandExecutor.Execute("c:\progra~2\zbar\bin\zbarcam.exe", "")
  End Sub

  Private Sub _commandExecutor_OutputRead(ByVal output As String) Handles _commandExecutor.OutputRead
    txtResult.Text = output
  End Sub

Aber alle bin ich immer leere dos-box. Die zbarcam Anwendung ordnungsgemäß ausgeführt wird, weil ich sehen kann, die Kamera Vorschau und ich kann auch sehen, es erkennen von QR-Codes, aber der text wird nicht angezeigt in der dos-box und _commandExecutor_OutputRead sub wird nicht ausgelöst, wenn ich in der Nähe der DOS-box.

  • Das code-snippet sollte ziemlich einfach zu konvertieren. Wenn Sie es nicht tun können, gibt es einige online-utilities, um zu helfen. Google c sharp vb-Konvertierung und es gibt viele Optionen. Und wenn Sie ein .net-Programmierer sind, sollten Sie sich bewusst sein, dass Sie die Fähigkeit haben, verwenden Sie code aus anderen Sprachen in der gleichen Lösung.
  • Dank GrayFox374. Ja, ich hatte bereits versucht eine C# VB.Net Konverter, aber ich war immer ein Fehler in Zeile 1. Ich habe auch versucht, die Umwandlung, den code manuell (ich bin etwas vertraut mit C#) aber ich konnte nicht konvertiert werden ", proc.OutputDataReceived", da diese Eigenschaft scheint nicht zu existieren (es ist nicht einmal kommen mit intellisense).
  • siehe meine Antwort für eine Umstellung auf VB.Net
  • Brauchen Sie, Ihr Programm zu Holen, auf einem Konsolen-Fenster gestartet anderswo, oder ist es zulässig, für Ihr Programm, um die Konsole zu starten? Wenn letzteres und wenn dies wiederholt, ist es zulässig, für die Konsole-Fenster zu schließen, wenn Ihre app können Sie einfach öffnen Sie es erneut wieder?
  • Ja, die Konsole ist geöffnet von meiner Anwendung, aber es kann geschlossen und geöffnet werden mehrfach seit der DOS-Anwendung dauert etwa 20 Sekunden mit der Arbeit zu beginnen. Die Anwendung in Frage ist zbarcam, die nach aufgerufen wird, in der DOS-Eingabeaufforderung öffnet sich ein weiteres Fenster mit einer Vorschau, was die webcam sieht, und starten Sie dann die Anzeige der dekodierten text des QR-codes innerhalb der ersten Eingabeaufforderung box. Ich brauche den text zu Lesen in der dos-box wird in regelmäßigen Abständen für alle neuen QR-codes entdeckt, die von der web-cam.
  • Bitte klären: sind Sie eigentlich sprechen, über einen DOS (d.h., 8-bit, 10+ Jahre alt) Anwendung? Oder willst du nur, dass ein command-line-Anwendung? DOS-Anwendungen laufen in einer emulationsumgebung, die möglicherweise komplizieren die Sache.

InformationsquelleAutor Osprey | 2012-07-16
Schreibe einen Kommentar