Marneus73
Messages postés344Date d'inscriptionmercredi 24 janvier 2007StatutMembreDernière intervention27 octobre 2008
-
8 juin 2008 à 17:50
necrom
Messages postés30Date d'inscriptionsamedi 8 mars 2003StatutMembreDernière intervention26 janvier 2011
-
19 juin 2008 à 11:17
Bonjour à tous,
Je me posais une question: Est - il possible de travailler avec l'invite de commande ?
Je voudrais qu'à partir de mon programme on puisse envoyer des lignes de commandes à l'invite du genre netsend, netstat...
Possible ?
Merci d'avance.
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 8 juin 2008 à 18:56
Salut Marneus73,
En VB.NET, on ne peut pas controler directement l'invite de commande. Néanmoins, il est possible d'arriver à le faire en utilisant le système D.
L'astuce serait de créer un fichier bat (fichier de commande dos) et d'y stocker les commandes que tu souhaites exécuter et de lancer ensuite le fichier et cà c'est possible de le faire en VB.NET
Un petit exemple :
<hr size="2" width="100%" />
Dim SW
As New IO.StreamWriter(
"C:\test.bat") ' Crée un fichier de commande dos
SW.WriteLine(
"netstat")
' Ajout de la première commande a exécuter sous l'invite de commande
SW.WriteLine(
"@ECHO OFF")
' Désactivation de l'affichage
SW.WriteLine(
"Pause")
' Attente que l'utilisateur appui sur une touche
SW.WriteLine(
"dir C:")
' Ajout d'une deuxième commande
SW.WriteLine(
"Pause")
' Attente que l'utilisateur appui sur une touche
SW.Close()
' On ferme le fichier
Call Shell("C:\test.bat", AppWinStyle.NormalFocus)
' On appelle le fichier
<hr size="2" width="100%" />
Si tu as des soucis, n'hésites pas
Marneus73
Messages postés344Date d'inscriptionmercredi 24 janvier 2007StatutMembreDernière intervention27 octobre 2008 8 juin 2008 à 18:59
Slt fauve,
J'y avait pansé, mais j'ai un problème avec les chemins de fichier qui ont des accents. Dans l'invite de commande ça me les remplaces par des @ !?
Y a t'il aussi un autre system D pour récupperer ce qui est écrit dans l'invite de commande.
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 8 juin 2008 à 19:55
Salut,
Je ne suis pas d'accord avec Fauve, on peut très bien envoyer des commandes et lire le texte de retour. Voici un code qui affiche une MsgBox affichant la réponse d'une commande Ping :
Private Sub TestPing
' Création du process avec la ligne de commande
Dim p As Process = New Process
p.StartInfo.FileName = "ping"
p.StartInfo.Arguments = "google.fr"
' Paramètres permettants de lire la sortie du process
p.StartInfo.UseShellExecute = False
p.StartInfo.RedirectStandardOutput = True
p.StartInfo.CreateNoWindow = True
' p.StartInfo.StandardOutputEncoding = New System.Text.ASCIIEncoding
' Lancer la commande
p.Start()
' Lire la sortie
Dim output As String = p.StandardOutput.ReadToEnd
MsgBox(output)
End Sub
Par contre, aucun des codages du texte n'affiche la sortie correctement, je ne comprend pas
Il est bien sur possible de lire le stream de sortie de façon asynchrone.
Il est aussi possible d'injecter des commandes avec StandardInput