[R] Commande DOS ne fonctionne pas avec STDOUT
Posté : sam. 09 sept. 2017 14:10
Bonjour,
Afin de récupérer le numéro de série du HDD, j'utilise cette commande DOS.
D'habitude pour récupérer la valeur, j'enregistre sur fichier .txt temporaire puis je le supprime.
ça marche bien, mais je me suis essayé à récupérer la valeur directement sans passer par un fichier texte externe, alors j'ai lu quelques vieux topics ici et l'aide de Autoit pour arriver à ceci:
La boite de dialogue est vide 
Je sais qu'il me manque un truc mais je ne sais pas ce que c'est. C'est comme le ">" du premier code, si on l'oublie le fichier texte ne sera pas crée.
Afin de récupérer le numéro de série du HDD, j'utilise cette commande DOS.
Code : Tout sélectionner
wmic path Win32_DiskDrive get SerialNumber
RunWait(@comSpec & ' /c' & ' wmic path Win32_DiskDrive get SerialNumber > ' & @TempDir & "\serial.txt","",@SW_HIDE)
$file = FileOpen(@TempDir & "\serial.txt",0)
$serial= FileReadLine($file,2)
FileClose($file)
FileDelete(@TempDir & "\serial.txt")
$file = FileOpen(@TempDir & "\serial.txt",0)
$serial= FileReadLine($file,2)
FileClose($file)
FileDelete(@TempDir & "\serial.txt")
#include <Constants.au3>
$cmd = @ComSpec & " /c"&" wmic path Win32_DiskDrive get SerialNumber"
$pid = Run($cmd, Default, @SW_HIDE,$STDOUT_CHILD)
$line = StdoutRead($pid)
ProcessWaitClose($pid)
MsgBox(0, "STDOUT read:", $line)
$cmd = @ComSpec & " /c"&" wmic path Win32_DiskDrive get SerialNumber"
$pid = Run($cmd, Default, @SW_HIDE,$STDOUT_CHILD)
$line = StdoutRead($pid)
ProcessWaitClose($pid)
MsgBox(0, "STDOUT read:", $line)

Je sais qu'il me manque un truc mais je ne sais pas ce que c'est. C'est comme le ">" du premier code, si on l'oublie le fichier texte ne sera pas crée.