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

Signaler
-
 Utilisateur anonyme -
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

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
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
Messages postés
14757
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 janvier 2021
151
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

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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
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
Messages postés
14757
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 janvier 2021
151
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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
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

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

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

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.

Enfin je sais plus si c'était une fonction, je crois pas.
Messages postés
14757
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 janvier 2021
151
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

Bonjour,

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


Besoin d'aide ? Fait comme moi !
Messages postés
14757
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 janvier 2021
151
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

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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
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

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.)

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.

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 ?
Messages postés
14757
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 janvier 2021
151
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

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