[Déplacé]Commande DOS dans un textbox ou autre

Utilisateur anonyme - 7 avril 2012 à 19:34
 Utilisateur anonyme - 9 avril 2012 à 11:32
Bonjour,
je voulais savoir s'y il était possible d'exécuter une commande DOS et d'écrire son "résultat" dans une textbox ou autre. Voila ce que j'ai pour le moment (ce n'est qu'un exemple) :

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Process1.StartInfo.Arguments = "/c " & "dir/s > C:\Users\Coco\Desktop\TEST.txt"
        Process1.Start()

        System.Threading.Thread.Sleep(100)
        Dim LireFichier As String

        LireFichier = My.Computer.FileSystem.ReadAllText("C:\Users\Coco\Desktop\TEST.txt")
        RichTextBox1.Text = LireFichier

        System.Threading.Thread.Sleep(100)

        Kill("C:\Users\Coco\Desktop\TEST.txt")
    End Sub

Mais les caractères spéciaux sont affichés bizarrement (une sorte de point d'interrogation), puis ce n'est pas super pratique comme code.

Merci d'avance,
Sorpia.

36 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 avril 2012 à 19:55
Bonjour,
je me demande encore pourquoi j'ai lu jusqu'au bout !
Probablement parce que dans la section :
Forum > Visual Basic 6
!
Mais je vois bien, dès la première ligne de code, que tel n'est pas le cas !
Et je sors donc de là !



____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
7 avril 2012 à 20:01
Bonjour,

Regardes dans la doc de System.Diagnostics.Process, il y a 3 flux : Entrée, Sortie normale et sortie d'erreur.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
Utilisateur anonyme
7 avril 2012 à 20:06
Bonjour,
Attendez, ce n'est pas du VB.Net non plus, la sub écrite comme ça:
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
 

Sera automatiquement transcrit comme ça:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


Sorpia:
En quel langage écris-tu?

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 avril 2012 à 20:13
Bonjour, acive,
En quel langage écris-tu?

Au "hasard" : en CCNANCJC *
* Copié Collé Ni Analysé Ni Compris Juste Copié



____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
7 avril 2012 à 20:19
Bonjour,

Acive, je pense que c'est juste les ByVal qui ont été remplacé. En .NET, par défaut, le passage se fait en valeur au lieu de référence comme en VB6.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 avril 2012 à 20:20
Et sans même parler de l'essentiel : la manière toute bête de remplir une richtextbox (sans tout ce saint Frusquin, hein ...)


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Utilisateur anonyme
7 avril 2012 à 20:26
Salut Henry,
Oui justement, mais je n'arrive pas à écrire:
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

(sous vb2010 en tout cas), il rajoute automatiquement les "ByVal") du coup on ne sait pas trop ce que c'est comme langage.

On va finir par lui envoyer une disquette DOS6, comme ça c'est réglé...

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
Utilisateur anonyme
7 avril 2012 à 20:31
Bonjour Uc,
C'est vrai que je suis arrêté à la première ligne, en regardant plus loin c'est bien du .net:
System.Threading.Thread.Sleep(100)

Sauf la première ligne

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
Utilisateur anonyme
7 avril 2012 à 23:25
Bonsoir,
excuser moi de mettre tromper de section.
J'utilise Visual Basic Express 2010.
Lorsque je clique sur le bouton il me génère bien cette ligne de code, mais je peux rajouter le Byval dans problème.

Pour ça :
System.Threading.Thread.Sleep(100)
j'ai utilisé ce dont je me rapellais, il y a une fonction mais je ne m'en souvenait plus.

NHenri je regarde ça demain merci de ton aide.
0
Utilisateur anonyme
8 avril 2012 à 08:44
Enfin je sais plus si c'était une fonction, je crois pas.
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
8 avril 2012 à 13:19
Bonjour,

Aller, une piste :
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.standarderror.aspx
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.standardinput.aspx
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.standardoutput.aspx

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
Utilisateur anonyme
8 avril 2012 à 18:05
Bonjour,

J'arrive juste a avoir ce qui est marqué dans la fenêtre cmd...


Besoin d'aide ? Fait comme moi !
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
8 avril 2012 à 18:14
Bonjour,

Et tu veux quoi ?
Car en utilisant cela, tu devrait avoir le même résultat que celui que tu as à présent.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
Utilisateur anonyme
8 avril 2012 à 18:20
Attends,
tout ce que tu veux faire c'est afficher le texte de ton fichier, s'il existe, sur un richtextbox?
Pourquoi passer par des commandes dos?
Imports System.IO
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
   If File.Exists("C:\Users\Coco\Desktop\TEST.txt") = True Then
      RichTextBox1.Text = File.ReadAllText("C:\Users\Coco\Desktop\TEST.txt")
      Kill("C:\Users\Coco\Desktop\TEST.txt")
   End If
End Sub
End Class



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
8 avril 2012 à 18:42
Relire ce que j'ai dit hier soir
Et sans même parler de l'essentiel : la manière toute bête de remplir une richtextbox (sans tout ce saint Frusquin, hein ...)

Il n'y a qu'à essayer, tout bêtement :
richTextBox1.LoadFile(..chemin complet...)

non ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Utilisateur anonyme
8 avril 2012 à 18:46
Re-bonjour,

NHenry je veux dire par la que j'ai ça de marqué dans ma textbox :

Microsoft Windows [version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Tout droits réservés.

(Ce qui est marqué dans la console quand on ouvre l'invité de commande.)
0
Utilisateur anonyme
8 avril 2012 à 18:48
Re (j'ai pas vu ton message ucfoutu)
Oui mais au départ je voulais savoir si il y avait un autre moyen, car les caractères spéciaux sont mals écrits.
0
Utilisateur anonyme
8 avril 2012 à 18:58
Re-Bonjour,

ucfoutu ton code ne fonctionne pas (format de fichier invalide).

acive ton code fonctionne mais les caractères spéciaux ne s'affiche toujours pas (il s'affiche ainsi : �). Avez-vous une solution ?
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
8 avril 2012 à 18:59
Bonjour,

Tu n'as qu'à ignorer les quelques premières lignes.
Sinon, il y a la classe Io.Directory qui contient des méthodes pour récupérer la liste des fichier et Io.File pour récupérer leurs données.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
Utilisateur anonyme
8 avril 2012 à 20:42
Salut tout le monde,

Sorpia:
Alors je comprends mieux.
Le problème n'est pas l'affichage des caractères spéciaux, mais l'enregistrement de ton fichier qui a été effectué déjà avec des caractères erronés.

Nous avons dans ton fichier:
Le num‚ro de s‚rie du volume est 344
Ainsi que:
33ÿ786ÿ990ÿ592


Alors que les "ÿ" et les "," ce sont (tous les deux) des caractères 63 en ascii.
La résolution de ton problème n'est pas dans l'affichage des caractères mais dans l'enregistrement de ton fichier au départ (ce dont on ne connait pas).

Tu peux éventuellement remplacer les chr(63) par des "é" mais il reste le problème des "." entre les chiffres.

exemple:
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Fichier As String = "C:\Users\Carlos\Desktop\TEST.txt"
        If File.Exists(Fichier) = True Then
            Dim Tex As String = File.ReadAllText(Fichier)
            For Each Ch As Char In Tex
                If Asc(Ch) 63 Then Tex Tex.Replace(Ch, "é")
            Next
            RichTextBox1.Text = Tex
            Kill(Fichier)
        End If
    End Sub



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
Rejoignez-nous