OVH Cloud OVH Cloud

Rediriger la sortie TXT standard avec ShellExecute

2 réponses
Avatar
Duric
Salut, voici ma commande:

ret=ShellExecute(Me.hwnd,vbNullString,_
"progDOS.exe","C:\File.dat", "C:\", 1)

Donc, progDOS se lance en utilisant File.Dat et inscrit des infos sur
la sortie standard (la console).
Je voudrais que mon prog VB puisse lire cette sortie !!!

J'ai essayé ceci, sans succes:
ret=ShellExecute(Me.hwnd,vbNullString,_
"progDOS.exe","C:\File.dat 1>C:\Data.txt", "C:\", 1)
ceci devrait rediriger la sortie console ds le fichier Data.txt, mais
la sortie est toujours sur la console..
Pourtant en tapant sous dos:
C:> progDOS.exe C:\File.dat 1>data.txt , ça fonctionne !

Bref, qqn a une solution pour rediriger la sortie standard sur un
fichier ou sur un objet du genre TextBOX ?

Merci !

2 réponses

Avatar
Clive Lumb
Il faut appeler "CMD /c chaine_de_commande"
Donc ceci marche
CmdString = "cmd /c tree > C:toto.txt"

"Duric" a écrit dans le message de
news:
Salut, voici ma commande:

ret=ShellExecute(Me.hwnd,vbNullString,_
"progDOS.exe","C:File.dat", "C:", 1)

Donc, progDOS se lance en utilisant File.Dat et inscrit des infos sur
la sortie standard (la console).
Je voudrais que mon prog VB puisse lire cette sortie !!!

J'ai essayé ceci, sans succes:
ret=ShellExecute(Me.hwnd,vbNullString,_
"progDOS.exe","C:File.dat 1>C:Data.txt", "C:", 1)
ceci devrait rediriger la sortie console ds le fichier Data.txt, mais
la sortie est toujours sur la console..
Pourtant en tapant sous dos:
C:> progDOS.exe C:File.dat 1>data.txt , ça fonctionne !

Bref, qqn a une solution pour rediriger la sortie standard sur un
fichier ou sur un objet du genre TextBOX ?

Merci !




Avatar
ng
Il faudra aussi utiliser la variable d'environnement CmdSpec :

Dim sCmd As String, lRet As Long
sCmd = "dir /p"
lRet = Shell("""" & Environ$("CmdSpec") & """ /c " & sCmd & " >
fichier.txt", vbHide)
'ensuite tu peux attendre la fin du process pr recuperer le fichier

Nicolas.

"Duric" a écrit dans le message de news:

Salut, voici ma commande:

ret=ShellExecute(Me.hwnd,vbNullString,_
"progDOS.exe","C:File.dat", "C:", 1)

Donc, progDOS se lance en utilisant File.Dat et inscrit des infos sur
la sortie standard (la console).
Je voudrais que mon prog VB puisse lire cette sortie !!!

J'ai essayé ceci, sans succes:
ret=ShellExecute(Me.hwnd,vbNullString,_
"progDOS.exe","C:File.dat 1>C:Data.txt", "C:", 1)
ceci devrait rediriger la sortie console ds le fichier Data.txt, mais
la sortie est toujours sur la console..
Pourtant en tapant sous dos:
C:> progDOS.exe C:File.dat 1>data.txt , ça fonctionne !

Bref, qqn a une solution pour rediriger la sortie standard sur un
fichier ou sur un objet du genre TextBOX ?

Merci !