Bonjour,
Je ne sais pas trop comment m'expliquer mais je souhait faire une ProgressBar sur l'installation de mes imprimantes.
Je m'explique, mon script récupère une liste d'imprimante à installé et lance l'installe par Rundll32. Ensuite j'effectue une boucle dans la quelle je fait une liste des imprimantes installées et je compare avec la liste à installées. Ceci fonctionne mais j'aimerai ajouter une ProgressBar pour que l'utilisateur final puisse voir que le poste travail et surtout où il en est.
Voici ma boucle :
► Afficher le texte
;==== Creation d'une liste des imprimantes installées sur le poste INSERER DANS UNE BOUCLE JUSQU'A 2 LISTE = / ou TEMPS DEPASSé
Local $nb_ligne = _FileCountLines($fichuser & "\" & $Imparch)
;MsgBox(0,"","nombre de ligne : " & $nb_ligne)
Local $starttime = _Timer_Init()
Do
sleep(300)
Local $var3 = 0
If FileExists($fichuser & '\' & $ImpInst) Then
FileDelete($fichuser & '\' & $ImpInst)
EndIf
$i = 0
While 1
$i += 1
$val = RegEnumVal ("HKCU\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts", $i )
If @error Then ExitLoop
FileWriteLine($fichuser & '\' & $ImpInst,$val)
WEnd
;Run(@ComSpec & " /c " & 'wmic printer list instance > ' & $fichuser & '\' & $ImpInst, "", @SW_HIDE)
;Run("C:\WINDOWS\system32\cmd.exe")
;WinWaitActive("C:\WINDOWS\system32\cmd.exe")
;$message = "wmic printer list instance > " & $fichuser & "\" & $ImpInst
;send($message & "{ENTER}")
;$message = " exit"
;Send($message & "{ENTER}" & "{END}")
;MsgBox(0,"test","test apres creation de " & $ImpInst)
;==== Lecture des deux listes
;MsgBox(0,"","Lancement de supprespaces.exe")
;RunWait("supprespaces.exe")
;MsgBox(0,"","Après supprespaces.exe")
Local $file=FileOpen($FileImp,0)
Local $FileImpInst=$fichuser & "\" & $ImpInst
Local $file1=FileOpen($FileImpInst,0)
;===== Lecture et comparaison ligne par ligne des listes
;MsgBox(0,"","Verrification des listes")
$line=FileReadLine($file) ; $line1 comprend le contenu ligne par ligne du fichier
While @error <> -1
;MsgBox(0,"line",$line)exit
$line1=FileReadLine($file1) ; $line comprend le contenu ligne par ligne du fichier
While @error <> -1
;MsgBox(0,"line1",$line1)
If $line=$line1 Then
MsgBox(64, "Imprimante", "L'imprimante : " & $line1 & " est installée.",1)
$var3 = $var3 + 1
EndIf
$line1=FileReadLine($file1) ; $line comprend le contenu ligne par ligne du fichier
WEnd
FileClose($file1)
$file1=FileOpen($FileImpInst,0)
$line=FileReadLine($file) ; $line comprend le contenu ligne par ligne du fichier Installées.txt
WEnd
;MsgBox(0,"test","Test après verrification d'installation des imprimantes")
FileClose($file)
FileClose($file1)
Until (($var3 = $nb_ligne) or (_Timer_Diff($starttime) >= 30000))
J'ai regardé quelque tuto mais je n'y comprend pas grand chose et je crois que je suis pas le seul au vu des différents messages rencontrés.
J'avais pensé à rajouter un "ProgressOn" puis un "For $var3 = 0 to $nb_ligne" avant ma boucle "Do" mais logiquement ça ne fonctionne pas et je ne sais pas comment faire.
Désolé pour le dérangement et merci d'avance
