begin process at 2008 05 12 08:12:57
1 170 153 membres
57 nouveaux aujourd'hui
13 956 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CAPTURE DU TEXTE D'UN PROGRAMME DOS PAR UN PIPE ...


Information sur la source

Catégorie :API Classé sous : capturer, texte, programme, dos, pipe Niveau : Expert Date de création : 08/03/2003 Date de mise à jour : 08/03/2003 12:03:15 Vu / téléchargé: 22 067 / 3 468

Note :
9,62 / 10 - par 29 personnes
9,62 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (42)
Ajouter un commentaire et/ou une note

Description

Je pense que beaucoup ont du imaginer pouvoir lancer un programme DOS et recevoir le texte dans leur programme VB plustot que dans le fenêtre dos ou pseudo DOS ...

Testé uniquement sous XP ... A voir pour les autres systèmes

Bonne prog à tous
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

  • signaler à un administrateur
    Commentaire de jack le 08/03/2003 02:17:19 administrateur CS

    Salut FredLynx
    Superbe. Bien commenté, innovateur.
    Très bonne source

  • signaler à un administrateur
    Commentaire de TheSaib le 08/03/2003 12:49:45 administrateur CS

    Lu fredlynx , cette est le fruit de tout ces mois d'absence ? :)
    En tout cas c'est bien.

    :)

  • signaler à un administrateur
    Commentaire de max12 le 08/03/2003 15:34:27 administrateur CS

    Bravo Fred, sa marche a la vapeur !! (Sous Win2k)

    @+

  • signaler à un administrateur
    Commentaire de fredlynx le 08/03/2003 17:45:08 administrateur CS

    Nop TheSaib... c'est juste un quartier du fruit ;)
    Le fruit complet n'est pas encore mur lol lol lol

  • signaler à un administrateur
    Commentaire de JEROMAX le 10/03/2003 10:52:34

    Je cherche ce truc depuis super longtemps. Jusqu'à maintenant j'écrivais le résultat dans un fichier que j'analysais ensuite ...
    C'est nettement plus propre, c'est cool !
    Merci
    (fonctionne très bien sous 2000)

  • signaler à un administrateur
    Commentaire de MyC le 13/03/2003 11:41:58

    Salut fredlynx,

    Ton programme est excellent (10/10)!!!!

  • signaler à un administrateur
    Commentaire de titou2002 le 13/03/2003 23:17:00

    a oui la ca va servir a bcp
    meme peut etre meme a moi :D
    je met 10 ca les vaut

  • signaler à un administrateur
    Commentaire de Urgo le 21/05/2003 21:49:50

    Merci à toi pour cette source  ! C d'la balle !

  • signaler à un administrateur
    Commentaire de pcpunch le 18/07/2003 00:15:41

    marche po avec arj.exe et doskey ?? comprend po

  • signaler à un administrateur
    Commentaire de philsap52 le 08/10/2003 10:21:23

    Du trés bon boulot. Félicitations
    Je vais le tester plus amplement sur différents OS mais ok sous w2k.

  • signaler à un administrateur
    Commentaire de Syborg le 12/12/2003 16:13:14

    Super Taff, ça fonctionne nickel...

    Juste une petite remarque, sur des applis dos lentes ou gourmandes ça bloque tout le process, tu pourrais peut être envisager de mettre la conversation en asynchrone voir en multi-threading.

  • signaler à un administrateur
    Commentaire de gabchampagne le 11/01/2004 00:54:09

    Un gros détail que j'ai cru remarqué :
    si un programme dos n'affiche rien, ÇA VA BOGUER.

  • signaler à un administrateur
    Commentaire de VVV le 30/01/2004 21:23:26

    Merci fredlynx pour cette excellente prog ! Canon !

    Je te mets 11/10... zut ya pas moyen ;-)

    Je compte l'utiliser dans un petit prog. de sauvegarde automatique... si j'ai ta permission (je déposerai la source sur vbfrance de toute manière)



    V3

  • signaler à un administrateur
    Commentaire de moumoul1982 le 17/02/2004 14:27:17

    elle a l air vraiment propre ta source

    Chapeau !!!!

  • signaler à un administrateur
    Commentaire de moumoul1982 le 18/02/2004 13:56:25

    Juste une question a cette source que je kiffe grave !!!

    Est il possible de mettre une barre fleche sur la droite de la fenetre pour pouvoir se balader dans la fenetre une fois l execution termine ???

  • signaler à un administrateur
    Commentaire de cyber007 le 25/04/2004 14:48:20

    salut fredlynx, ta méthode d'execution de commandes MS-DOS est vraiment cool, c'est beaucoup mieux que de passer par un fichier texte en utilisant le ">" :-P

    J'ai juste une petite question... est-il possible d'interargir avec un process executé via ta DosClass ?
    Je m'explique... mettons que je lance un nc -l -v -p 1234 avec ta méthode, j'ouvre ainsi le port 1234 de mon ordinateur afin de discuter avec un ami qui s'y connecte sans problème depuis le sien. Je vois tout ce qu'il me dit dans la textbox, mais je n'ai pas moyen de lui répondre :(

    Alors grand chef, une solution ? :-D

  • signaler à un administrateur
    Commentaire de Wicket le 25/04/2004 22:59:55

    gg Excelente classe.j' ai trouver la source ds les trophée de VB france.
    Et je pense kelle me sera utilise pour bcp de programe a venir :)
    Merci et bonne continuation.

  • signaler à un administrateur
    Commentaire de Zak888 le 18/06/2004 08:30:26

    S.U.P.E.R.B.E :-D
    Bravo.

  • signaler à un administrateur
    Commentaire de drcharly93 le 06/09/2004 23:38:47

    Salut FredLynx,

    Un petit merci pour cette ressource, et pour signaler que votre source à été portée sur Windev.

    Vous trouverez le source sur :
    http://sourceforge.net/project/showfiles.php?group_id=84918&package_id=120239
    sous le nom de WDDos.



  • signaler à un administrateur
    Commentaire de BruNews le 07/09/2004 00:06:03 administrateur CS

    Je ne suis pas alle voir le code de sourceforge mais je signale qu'un exemple complet est fourni depuis fort longtemps dans MSDN (en C bien sur) avec la fonction CreatePipe.

  • signaler à un administrateur
    Commentaire de drcharly93 le 07/09/2004 17:09:56

    Bonjour BruNews,

    Je m'étais mal exprimé.
    J'ai traduit le code VB6 de fredLinx pour le porter sur Windev, comme ce code n'est pas de moi, j'ai pris la délicatesse d'en prévenir ici l'auteur.

    [DrCCharly93] co-animateur du site rbesset.net
    Merci à vous.
    @+

  • signaler à un administrateur
    Commentaire de BruNews le 07/09/2004 17:17:06 administrateur CS

    Salut drcharly93,

    y a pas de prob, c'etait juste pour rappeler qu'on n'oublie pas aussi d'aller voir les explications de l'API dans MSDN qui reste la source fondamentale en ce domaine.

    Bonne continuation.

  • signaler à un administrateur
    Commentaire de pojick le 14/09/2004 01:17:24

    cette source me sauve la vie!!!!

    merci et surtout félicitations !

  • signaler à un administrateur
    Commentaire de frop01 le 15/09/2004 14:57:40

    Excellent !

  • signaler à un administrateur
    Commentaire de AeTuOq28 le 27/09/2004 18:22:32

    Trop bien !

  • signaler à un administrateur
    Commentaire de viran le 28/09/2004 16:52:29

    Juste uen question a quoi ca sert de prendre du texte dans le dos y'a une commande pour ca...

  • signaler à un administrateur
    Commentaire de VinceVG le 17/10/2004 17:44:14

    Et le contraire : envoyer des info à un prog dos, tu sais faire.

  • signaler à un administrateur
    Commentaire de drcharly93 le 18/10/2004 00:02:36

    Bonjour VinceVG,

    Ceci est réalisable via les apis Windows.

    Suivre ce lien
    http://www.vbfrance.com/code.aspx?ID=23012

  • signaler à un administrateur
    Commentaire de zytrahus le 07/11/2004 10:38:37

    excellente api

    en revanche j'ai des problemes avec son utilisation dans une simple boucle => j'observe des problemes de priorités sur les instructions, exemple :

    While i < 5
        i = i + 1
        status.Text = "TEST instruction"
            
        MyDOS.CommandLine = "batch.bat"
        MyDOS.ExecuteCommand
    Wend


    ça a pour effet de ne remplir la TextBox qu'une fois que le batch.bat ait été executé. Un moyen de palier à celà ?

  • signaler à un administrateur
    Commentaire de jack le 07/11/2004 17:33:55 administrateur CS

    Salut zytrahus
    Je bosse avec en ce moment et je connais ce code à fond.
    -1- Comme toujours, il faut laisser le temps aux process externes de s'exécuter : Ajoute un simple DoEvents après le .ExecuteCommand, comme ça l'event de réception peut se déclencher.
    -2- Durant l'exécution de la commande, la classe retransmet 256 octets par 256 octets le résultat qu'elle renvoie dans l'évènement "Outputs".
    Pour récupérer ces données au fuir et à mesure qu'elle arrivent, il suffit, dans la forme dans laquelle tu déclares la Classe MyDOS, de bien utiliser :
    Private WithEvents MyDOS As DOSClass
    A partir de là, regarde parmi les objets de ta forme : Sur ta page de code, en haut à gauche, la ComboBox donne la liste, et dans cette liste, tu retrouveras l'objet que tu viens de déclarer (ici MyDOS).
    Clique dessus et tu verras que l'evènement "Outputs" apparait et renvoie dans "CommandOutputs" les caractères reçus : Ce code s'exécutera à chaque fois que la classe enverra des données. A toi de les traiter.
    C'est la manière la plus rapide de recevoir les données.
    -2- Si tu n'as besoin des infos qu'après la fin de l'exécution de ExecuteCommand, utilise cette technique moins lourde à traiter :
    Résultat = MyDOS.ExecuteCommand
    ça suffit, mais il faut attendre la fin de l'exécution.

    Vala.
    Jack

  • signaler à un administrateur
    Commentaire de Fife le 12/11/2004 12:03:04

    Merciiii !

  • signaler à un administrateur
    Commentaire de VinceVG le 14/11/2004 12:54:45

    Merci DrCharly93. J'ai essayé et je n'ai pas réussit. Soit je suis une burne (ce n'est pas à exclure totalement) soit je n'ai pas tout compris soit ce n'est pas possible.

    Vince VG

  • signaler à un administrateur
    Commentaire de drcharly93 le 14/11/2004 18:34:10

    Bonjour VinceVG,

    Je ne pense pas que la réponse soit là!.

    Peut être est-ce moi qui est mal interprété ta question.
    Moi, je voulais parler de console dos, ce que j'ai déjà réalisé.
    De la à envoyer des infos à  un programme en cours d'exécution il faut peut être regarder du coté des sendKeys.

    En tout cas peut nous faut-il plus d'infos pour comprendre exactement ce que tu cherche à faire.

  • signaler à un administrateur
    Commentaire de VinceVG le 16/11/2004 10:13:59

    Salut,

    J'ai exposer mon problème là :

    http://www.vbfrance.com/forum.v2.aspx?ID=331798&post=ok

    Si vous voulez vous joindre à ceux qui tente de m'aider je vous invites de tout coeur.

  • signaler à un administrateur
    Commentaire de viran le 18/11/2004 19:04:17

    par contre faire un nouvel invité de commandes avec un meilleur style ca serait genial!

  • signaler à un administrateur
    Commentaire de damien_adi le 07/03/2005 15:16:44

    Bonjour Fredlynx,
    Je cherche desesperement a faire fonctionner ce code sous VB.Net mais pas moyen, apres qque modifs, j arrive enfin a executer le code mais la fonction ReadFile ne retroune rien du process que j'execute.
    QQu'un a t il deja essayé de porter ce code en .NET ?
    SI oui pouvez vous me montrer comment vous avez fait ?

    Merci bcp.

  • signaler à un administrateur
    Commentaire de Angus59 le 19/03/2005 01:24:45

    bonjour à tous,

    Je galere pas mal et j'aurais besoin de votre aide, je suis un debutant confirmé lol.
    J'ai pas mal parcouru le forum et les sources afin de trouver la methode du Dos-Pipe


    Voila je vous explique  j'ai juste créé un form avec un bouton et une textbox qui sert normalement de "Dos Output" auquel j'ai rajouté un module de classe

    En precisant MyDOS.CommandLine = "ping 127.0.0.1" ca fonctionne du feu de dieu.
    Mais moi ce qui m'interesse c'est une ligne de commande qui fait appel a "XCOPY.exe" ou autre chose
    par exemple "xcopy.exe c:\Poub\Scans e:\tempo /s"
    Mais rien ne se passe , par contre si je met cette ligne de commande dans un batch et que j'inscris MyDOS.CommandLine = "batch.bat"  , le retour dans la fenetre VB me met juste ca : E:\Focal\ProjetV1_VB>xcopy.exe c:\Poub\Scans e:\tempo /s  et il ne se passe rien snifff.

    Ce que je voudrais c'est que l'action se lance et que je vois ce qui se passe et si possible une interaction de notre part (par ex : Ctrl C ou Y ou N ou T ......) dans la fenetre prevue comme dans une fenetre CMD pure.

    Voila je c'est pas si je me fait bien comprendre, mais ca m'aiderais vraiment vous avez la solution

    D'avance un grand merci
    Michel.
    ---------------------------------------------------------------------------------------------
    'Private MyDOS As DOSClass

    Private WithEvents MyDOS As DOSClass


    Private Sub CmdQuitter_Click()
        Unload Me
    End Sub

    Private Sub Form_Load()
        Set MyDOS = New DOSClass
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
        MyDOS.ClosedCommand
        Set MyDOS = Nothing
    End Sub

    Private Sub MyDOS_ReceiveOutputs(CommandOutputs As String)
        TextDos = TextDos & CommandOutputs
    End Sub
    Private Sub Command1_Click()
        'Lancer
        
        TextDos = ""
        MyDOS.CommandLine = "xcopy.exe c:\Poub\Scans e:\tempo /s"
        MyDOS.ExecuteCommand
    End Sub

  • signaler à un administrateur
    Commentaire de micka57 le 10/08/2007 14:42:38

    Super code.
    Cependant je cherche moi aussi à migrer cette source vers vb.net et cela je n'y parvient pas.

    est-ce que quelqu'un a déjà rèussi ?

  • signaler à un administrateur
    Commentaire de Renfield le 10/08/2007 15:10:45 administrateur CS

    la doc MSDN du framework est assez complète, avec des exemples et tout et tout.
    dommage que si peu de gens aient ce reflex de la parcourir quand une question survient...

    http://msdn2.microsoft.com/en-us/library/system.diagnostics.process.standardoutput(vs.80).aspx

    et encore, je ne code pas en .Net ^^ Google est décidement mon ami :p

  • signaler à un administrateur
    Commentaire de Renfield le 10/08/2007 15:12:49 administrateur CS

    ca servira a d'autres, remarques, comme damien_adi, par exemple

  • signaler à un administrateur
    Commentaire de micka57 le 13/08/2007 13:29:16

    merci RENFIELD pour ta réponse.
    J'avais déjà essayer avec le process.standardoutput, mais avec cette méthode, je ne parviens à afficher la sortie standard qu'à la fin de l'exécution de la commande.
    La commande que je lance s'exécute pendant environ une minute et il est préférable de voir les messages au fur et à mesure plutot que d'attendre la fin de la commande.

    Vois-tu un moyen d'y parvenir ?

  • signaler à un administrateur
    Commentaire de nablimohavb le 25/01/2008 17:40:08

    salut
    cette application m'a aider enormement
    mais en executant ftp.exe sa ce plante
    pourquoi?

Ajouter un commentaire

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS