La lecture et l'écriture à l'invite de commande de la console à l'aide de VB.net

J'ai posé une question similaire ailleurs, mais peut-être que je n'ai pas demander le droit chemin ou je n'ai pas été assez clair donc, je demande à nouveau.

C'est là que je veux obtenir:

  1. Ouvrez une invite de commande windows
  2. Exécuter une application DOS grâce à une commande dos
  3. Lire le texte retourné qui est indiqué dans le dos de la boîte et de l'afficher dans une zone de texte dans mon formulaire windows. Cette opération doit être répétée à intervalles réguliers (par exemple, à chaque seconde) et le dos de la boîte ne doit pas être fermée.

J'ai été tourner en rond en essayant d'utiliser les Processus et StartInfo commandes, mais ils seulement d'exécuter l'application et fermer immédiatement. J'ai besoin de garder le dos ouvert la boîte et continuez de lire un nouveau texte qui est ajouté par l'application de dos. Je suis aussi tombée sur ce fil qui semble répondre à mon problème, mais c'est en C# et je ne pouvais pas la convertir:

Lire l'Invite de commandes Windows STDOUT

Je l'ai fait entrer à la partie où j'ouvre l'invite de commande et d'obtenir le démarrage de l'application, mais je ne sais pas comment lire les données qu'il retourne sur le dos de la boîte de la console de chaque maintenant et puis. Je veux vérifier en permanence les changements de sorte que je peux agir sur eux, peut-être l'aide d'un contrôle timer.

S'il vous plaît aider.

Merci!

J'ai couru le code qui a été aimablement fourni par Stevedog et l'a utilisé comme ceci:

  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

Mais tout ce que je reçois est vide dos de la boîte. Le zbarcam application s'exécute correctement, car je peux voir l'aperçu de l'appareil photo et je peux le voir également la détection de Codes QR, mais le texte n'est pas affiché dans la fenêtre dos et _commandExecutor_OutputRead sous n'est pas déclenchée, sauf si je ferme la fenêtre DOS.

  • Que l'extrait de code devrait être assez facile à convertir. Si vous ne pouvez pas le faire, il y a quelques utilitaires en ligne pour vous aider. Google c sharp pour vb conversion et il ya beaucoup d'options. Et si vous êtes un .net programmeur, vous devez être conscient que vous avez la possibilité d'utiliser le code de différentes langues dans la même solution.
  • Grâce GrayFox374. Oui j'avais déjà essayé un C# pour VB.Net convertisseur mais j'obtenais une erreur à la ligne 1. J'ai aussi essayé de convertir le code manuellement (je suis un peu familier avec le C#) mais je ne pouvais pas convertir "proc.OutputDataReceived" depuis que la propriété ne semble pas exister (il n'a même pas venir avec intellisense).
  • voir ma réponse pour une conversion à l'VB.Net
  • Avez-vous besoin de votre programme à ramasser sur une fenêtre de console commencé d'ailleurs, ou est-il possible pour votre programme pour démarrer la console? Si ce dernier et si cela doit se produire à plusieurs reprises, est-il possible pour la console de fenêtre pour la fermer, si votre application peut tout simplement ré-ouvrir à nouveau?
  • Oui, la console est ouverte par mon application, mais il ne peut pas être fermé et ouvert à de multiples reprises depuis l'application de DOS prend environ 20 secondes pour commencer à travailler. L'application en question est zbarcam, qui, après être invoquée dans le DOS, s'ouvre une autre fenêtre, avec un aperçu de ce que la webcam est de voir, et puis commencer à afficher le texte décodé des QR codes à l'intérieur de la première invite de commande de la boîte. J'ai besoin de lire le texte dans le dos, à intervalles réguliers, afin de vérifier tout nouveau QR codes détectés par la web cam.
  • Veuillez préciser: êtes-vous en train de parler d'un DOS (c'est a dire 8 bits, 10 ans et+) de l'application? Ou avez-vous juste dire une application en ligne de commande? DOS les applications s'exécutent dans un environnement d'émulation qui peut compliquer les choses.

InformationsquelleAutor Osprey | 2012-07-16