Bonjour,
j'essaie d'obtenir le resultat d'une commande dos...
voici mon code :
la commande marche si les "arguments" sont juste.. et le programme me retourne le resultat dans un msgbox.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Dim proc As New Diagnostics.Process 'On désactive le shell proc.StartInfo.UseShellExecute = False 'On redirige la sortie standard proc.StartInfo.RedirectStandardOutput = True 'On définit la commande proc.StartInfo.FileName = ("miso.exe") proc.StartInfo.Arguments = ("c:\test.iso -cd") proc.StartInfo.CreateNoWindow = True 'Démarrage de la commande proc.Start() 'Lecture de la sortie de la commande Dim output As String = proc.StandardOutput.ReadToEnd() Console.WriteLine(output) 'Attente de la fin de la commande proc.WaitForExit() 'Libération des ressources proc.Close() MessageBox.Show(output)
Or, si les arguments ne sont pas correct, je n'ai aucun retour. et le programme tourne en boucle.
Je pense que c'est parceque le programme attend la fin de la commande pour donner le retour...?
Peut-on remedier à cela? A savoir : Avoir un retour avec les erreures même si les arguments sont faux...?
Voilà j'éspère avoir été assez clair?
Merci d'avance!
edit :
voici un exemple :
si je tape manuellement cette commande dans une invite de commande, j'obtiens ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Dim proc As New Diagnostics.Process 'On désactive le shell proc.StartInfo.UseShellExecute = False 'On redirige la sortie standard proc.StartInfo.RedirectStandardOutput = True 'On définit la commande proc.StartInfo.FileName = ("miso.exe") proc.StartInfo.Arguments = ("c:\test.iso -be") proc.StartInfo.CreateNoWindow = True 'Démarrage de la commande proc.Start() 'Lecture de la sortie de la commande Dim output As String = proc.StandardOutput.ReadToEnd() Console.WriteLine(output) 'Attente de la fin de la commande proc.WaitForExit(1000) 'Libération des ressources proc.Close() MessageBox.Show(output)
et la commande attend une réponse...
j'aimerai avoir le retour dans mon programme comme quoi la commande attend une réponse.
Partager