Récupérer l'avancé du formatage d'un lecteur logique lancé en invite de commande

yannleco Messages postés 10 Date d'inscription samedi 9 avril 2005 Statut Membre Dernière intervention 6 mars 2009 - 5 mars 2009 à 20:10
yannleco Messages postés 10 Date d'inscription samedi 9 avril 2005 Statut Membre Dernière intervention 6 mars 2009 - 6 mars 2009 à 20:46
Bonjour,

est-il possible de récupérer l'avancé du formatage d'un lecteur logique et de lier cette avancée à une progressbar ?

et si oui, comment récupérer le pourcentage formaté au fur et à mesure de son incrémentation dans la fenêtre de l'invite de commande ?

Je ne suis pas sur d'avoir été très clair, mais bon...

Merci d'avance

5 réponses

troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
6 mars 2009 à 18:00
Bonjour,

Oui c'est complément possible, il faut simplement recuperer la sortie de ta console (Output)
exemple tout bete :
_____________________________________________________

        Dim p As New Process
        With p.StartInfo
            .RedirectStandardOutput = True
            .UseShellExecute = False
            .FileName = "cmd.exe"
            .Arguments = " /c dir /s *.*"

        End With
        p.Start()
        Dim output As IO.StreamReader = p.StandardOutput

        Do Until output.Peek = -1
            'ici tu peux mettre ton code qui va lire la ligne % (pourcentage)
            Console.WriteLine(output.ReadLine)
        Loop
        Me.Close()
_____________________________________________

Mais attention il faudra utiliser un thread pour ne pas bloquer l'application, utilise donc pour faire cela le fameux contrôle BackgroundWorker avec toutes ses propriétés
0
yannleco Messages postés 10 Date d'inscription samedi 9 avril 2005 Statut Membre Dernière intervention 6 mars 2009
6 mars 2009 à 19:01
Salut TroXsA,

effectivement, j'arrive à obtenir dans un textbox les lignes sur un dir C:\, en revanche, sur un format X:, j'ai un plantage de format.com... juste après avoir récupérer "insérez un nouveau disque pour le lecteur X:" et avant même de voir la ligne "et appuyez sur ENTRéE lorsque vous êtes prêt..."

Comment puis-je envoyer un Enter à l'invite de commande ?

J'ai un peu de mal ce soir, je viensd de passer l'AM à me battre avec la DOSClass de fredlynx pour un résultat identique (en beaucoup plus compliqué !!!) Lolll
0
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
6 mars 2009 à 19:49
re

j'ai regardé un peux partout sur les sites que je connais et il utilise pas cette methode pour formater une unité

il faut rechercher une API SHFormatDrive
exemple
___________________________________________
PrivateDeclareFunctionSHFormatDriveLib"shell32"(ByVal hwnd AsLong,ByVal iDrive AsLong,ByVal iCapacity AsLong,ByVal iFormatType AsLong)AsLong
___________________________________________

desoler de ne pas pouvoir t'aider plus que ça
0
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
6 mars 2009 à 19:52
oups

un petit oubli du lien sur le site de monsieur Microsoft
http://msdn.microsoft.com/en-us/library/bb762169.aspx
0

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

Posez votre question
yannleco Messages postés 10 Date d'inscription samedi 9 avril 2005 Statut Membre Dernière intervention 6 mars 2009
6 mars 2009 à 20:46
Re TroXsA

Apparement, cette API permet d'ouvrir la boite de dialogue de formatage de windows, c'est pas vraiment ce que je cherche.

Mais je vais voir s'il y a moyen de faire quelque chose avec ca...

Je te remercie kan même pour ton intérêt

@ +
0
Rejoignez-nous