j'ai fait un script autoit qui permet d'afficher des plan pdf, par une lecture codebarre sur un ecran
puis après de les déplacer dans de sous répertoire "ok" ou "erreur", en fonction d'une lecture code barre "ok" ou "erreur"
j'ai mis dans une GUI, mes liste de fichier, "source", "ok", "erreur" sous forme d'une combo list, et en dessous des label donnant le nombre de fichier que contient chaque répertoire
à chaque mouvement de fichier j'utilise la commande GUIctrlsetdata pour rafraichier les données des différent label, mais cela ne se met pas a jour (pourtant cela marche à l'initialisation du prog)
une capture de mon script

Uploaded with ImageShack.us
mon script
► Afficher le texte
Code : Tout sélectionner
$cheminpiatti=inputbox("chemin entrée", "chemin d'entrée?","C:\temppdf")
DirCreate($cheminpiatti&"\ok")
$chemin_ok=$cheminpiatti&"\ok"
DirCreate($cheminpiatti&"\erreur")
$chemin_erreur=$cheminpiatti&"\erreur"
$a=0
Global $Paused
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")
HotKeySet("+!d", "ShowMessage") ;Shift-Alt-d
#include <GUIConstants.au3>
#Include <GuiList.au3>
#include <File.au3>
#include <Array.au3>
dim $listnontraite[1000]
dim $listok[1000]
dim $listerreur[1000]
dim $labentree=1
GUICreate("My GUI list")
$Form1 = GUICreate("AForm1", 443, 443, 280, 0)
$listentree = GUICtrlCreateList($labentree, 20, 24, 121, 344, -1, $WS_EX_CLIENTEDGE)
$listok = GUICtrlCreateList("", 161, 24, 121, 344, -1, $WS_EX_CLIENTEDGE)
$listerreur = GUICtrlCreateList("", 302, 24, 121, 344, -1, $WS_EX_CLIENTEDGE)
sleep(150)
$label_entree=GUICtrlCreatelabel ("Line 1", 20, 380,121,25 )
sleep(150)
$label_ok=GUICtrlCreatelabel ("Line 2", 161, 380,121,25)
sleep(150)
$label_erreur=GUICtrlCreatelabel ("Line 3", 302, 380,121,25)
sleep(150)
$label_total=GUICtrlCreatelabel ("Line 4", 181, 420,121,25)
GUISetState ()
GUICtrlSetData($listentree,"")
$search = FileFindFirstFile($cheminpiatti&"\*.pdf")
If $search = -1 Then
MsgBox(0, "Error", "No files/directories matched the search pattern")
Exit
EndIf
While 1
If @error Then ExitLoop
$a=$a+1
$file=FileFindNextFile($search)
if $file="" Then
ExitLoop
EndIf
GUICtrlSetData($listentree,$file)
Wend
FileClose($search)
_GUICtrlListClear ($listerreur)
_GUICtrlListClear ($listok)
$input1 = ""
While $input1 <> "STOP"
refresh_listbox()
$Form1 = GUISwitch("AForm1")
$nbfichier_entree=countfile($cheminpiatti)
$nbfichier_ok=countfile($chemin_ok)
$nbfichier_erreur=countfile($chemin_erreur)
$nbfichier_total=$nbfichier_entree+$nbfichier_ok+$nbfichier_erreur
sleep(150)
$label_entree=GUICtrlSetData($label_entree,"pdf à traiter="&$nbfichier_entree)
sleep(150)
$label_ok=GUICtrlSetData($label_ok,"pdf ok="&$nbfichier_ok)
sleep(150)
$label_erreur=GUICtrlSetData($label_erreur,"pdf erreur="&$nbfichier_erreur)
sleep(150)
$label_total=GUICtrlSetData($label_total,"total des pdf="&$nbfichier_total)
GUISetState ()
$input1 = inputbox("non du fichier pdf", "non du fichier pdf"& @LF & $nbfichier_entree&" dans la liste a controler"& @LF& $nbfichier_ok&" dans la liste ok"& @LF& $nbfichier_erreur&" dans la liste erreur"& @LF& $nbfichier_total&" fichier au total","","",-1, -1, 0, 0)
if $input1<>"" then
$file2=StringLeft($input1,8)
$file2=$file2&".pdf"
if FileExists($cheminpiatti&"\"&$file2) Then
Send("{LWINDOWN}r{LWINUP}")
sleep (200)
send($cheminpiatti&"\"&$file2)
sleep (200)
Send("{ENTER}")
Else
if FileExists($cheminpiatti&"\ok\"&$file2) Then
Send("{LWINDOWN}r{LWINUP}")
sleep (200)
send($cheminpiatti&"\ok\"&$file2)
sleep (200)
Send("{ENTER}")
Else
if FileExists($cheminpiatti&"\erreur\"&$file2) Then
Send("{LWINDOWN}r{LWINUP}")
sleep (200)
send($cheminpiatti&"\erreur\"&$file2)
sleep (200)
Send("{ENTER}")
Else
MsgBox(16,"Error","le fichier n'existe pas")
$input1="error"
EndIf
endif
endif
sleep (1000)
if $input1<>"error" then
$input2=StringLeft($input1,8)
$input3= inputbox("VALIDATION ?", "FICHIER EN COURS"& @LF & $input2,"","",-1, -1, 0, 500)
SELECT
case $input3= "OK"
MouseMove(521,405)
MouseDown("left")
MouseUp("left")
Sleep(1000)
Send("{ALTDOWN}{F4}{ALTUP}")
for $b=0 to $a Step +1
$test = _GUICtrlListGetText ($listentree, $b)
$test=StringLeft($test,8)
if $test = $input2 Then
$ret = _GUICtrlListDeleteItem($listentree,$b)
If($ret == $LB_ERR) Then
MsgBox(16,"Error","Unknown error from _GUICtrlListSelItemRange")
EndIf
endif
next
sleep(200)
FileMove($cheminpiatti&"\"&$file2, $cheminpiatti&"\ok\"&$file2)
sleep(200)
case $input3= "ERREUR"
MouseMove(521,405)
MouseDown("left")
MouseUp("left")
Sleep(1000)
Send("{ALTDOWN}{F4}{ALTUP}")
for $b=0 to $a Step +1
$test = _GUICtrlListGetText ($listentree, $b)
$test=StringLeft($test,8)
if $test = $input2 Then
$ret = _GUICtrlListDeleteItem($listentree,$b)
If($ret == $LB_ERR) Then
MsgBox(16,"Error","Unknown error from _GUICtrlListSelItemRange")
EndIf
endif
next
sleep(200)
FileMove($cheminpiatti&"\"&$file2, $cheminpiatti&"\erreur\"&$file2)
sleep(200)
case $input3="CORERREUR"
MouseMove(521,405)
MouseDown("left")
MouseUp("left")
sleep(1000)
Send("{ALTDOWN}{F4}{ALTUP}")
for $b=0 to $a Step +1
$test = _GUICtrlListGetText ($listerreur, $b)
$test=StringLeft($test,8)
if $test = $input2 Then
$ret = _GUICtrlListDeleteItem($listerreur,$b)
If($ret == $LB_ERR) Then
MsgBox(16,"Error","Unknown error from _GUICtrlListSelItemRange")
EndIf
endif
next
sleep(200)
FileMove($cheminpiatti&"\erreur\"&$file2, $cheminpiatti&"\ok\"&$file2)
sleep(200)
case $input3="COROK"
MouseMove(521,405)
MouseDown("left")
MouseUp("left")
Sleep(1000)
Send("{ALTDOWN}{F4}{ALTUP}")
for $b=0 to $a Step +1
$test = _GUICtrlListGetText ($listok, $b)
$test=StringLeft($test,8)
if $test = $input2 Then
$ret = _GUICtrlListDeleteItem($listok,$b)
If($ret == $LB_ERR) Then
MsgBox(16,"Error","Unknown error from _GUICtrlListSelItemRange")
EndIf
endif
next
FileMove( $cheminpiatti&"\ok\"&$file2,$cheminpiatti&"\"&$file2)
sleep(1000)
refresh_listbox()
case $input3="fin"
if FileExists("c:\listok.txt") Then
FileDelete("c:\listok.txt")
EndIf
_FileCreate("c:\listok.txt")
if FileExists("c:\listerreur.txt") Then
FileDelete("c:\listerreur.txt")
EndIf
_FileCreate("c:\listerreur.txt")
if FileExists("c:\listnontraite.txt") Then
FileDelete("c:\listnontraite.txt")
EndIf
_FileCreate("c:\listnontraite.txt")
for $i=0 To _GUICtrlListCount ( $listentree) step +1
_FileWriteToLine("c:\listnontraite.txt", $i+1, _GUICtrlListGetText ( $listentree, $i ), 1)
Next
for $i=0 To _GUICtrlListCount ( $listok) step +1
_FileWriteToLine("c:\listok.txt", $i+1, _GUICtrlListGetText ( $listok, $i ), 1)
Next
for $i=0 To _GUICtrlListCount ( $listerreur) step +1
_FileWriteToLine("c:\listerreur.txt", $i+1, _GUICtrlListGetText ( $listerreur, $i ), 1)
Next
MsgBox(4096,"","FIN")
Case Else
MsgBox(4096,"","erreur code-barre validation"& @LF &" l'application va fermer"& @LF &"veuillez réouvrir")
MouseMove(521,405)
MouseDown("left")
MouseUp("left")
Sleep(1000)
Send("{ALTDOWN}{F4}{ALTUP}")
Exit 0
EndSelect
endif
EndIf
Wend
Func TogglePause()
$Paused = NOT $Paused
While $Paused
sleep(100)
ToolTip('Script is "Paused"',0,0)
WEnd
ToolTip("")
EndFunc
Func Terminate()
Exit 0
EndFunc
Func ShowMessage()
MsgBox(4096,"","This is a message.")
EndFunc
func refresh_listbox()
$Form1 = GUISwitch("AForm1")
GUICtrlSetData($listok,"")
$search = FileFindFirstFile($cheminpiatti&"\ok\*.pdf")
If $search = -1 Then
$a=$a
;~ MsgBox(0, "Error", "No files/directories matched the search pattern")
EndIf
While 1
If @error Then ExitLoop
$a=$a+1
$file=FileFindNextFile($search)
if $file="" Then
ExitLoop
EndIf
GUICtrlSetData($listok,$file)
;~ ToolTip('fichier traité '&$a,0,0)
Wend
FileClose($search)
GUICtrlSetData($listerreur,"")
$search = FileFindFirstFile($cheminpiatti&"\erreur\*.pdf")
If $search = -1 Then
$a=$a
;~ MsgBox(0, "Error", "No files/directories matched the search pattern")
endIf
While 1
If @error Then ExitLoop
$a=$a+1
$file=FileFindNextFile($search)
if $file="" Then
ExitLoop
EndIf
GUICtrlSetData($listerreur,$file)
;~ ToolTip('fichier traité '&$a,0,0)
Wend
FileClose($search)
$Form1 = GUISwitch("AForm1")
$nbfichier_entree=countfile($cheminpiatti)
$nbfichier_ok=countfile($chemin_ok)
$nbfichier_erreur=countfile($chemin_erreur)
$nbfichier_total=$nbfichier_entree+$nbfichier_ok+$nbfichier_erreur
$label_entree=GUICtrlSetData($label_entree,"pdf à traiter="&$nbfichier_entree)
$label_ok=GUICtrlSetData($label_ok,"pdf ok="&$nbfichier_ok)
$label_erreur=GUICtrlSetData($label_erreur,"pdf erreur="&$nbfichier_erreur)
$label_total=GUICtrlSetData($label_total,"total des pdf="&$nbfichier_total)
EndFunc
Func countfile($dossier)
#Include <File.au3>
#Include <Array.au3>
$listeFichiers = _FileListToArray($dossier,"*.pdf",0)
If @Error=1 Then
$nbFic=0
ElseIf@Error=2 Then
$nbFic=0
ElseIf@Error=3 Then
$nbFic=0
ElseIf@Error=4 Then
$nbFic=0
else
$nbFic = $listeFichiers[0]
EndIf
RETURN( $nbFic)
EndFunc
pour l'utisation du script, ajouté systématiquement un "1" a la fin de chaque pdf dans le $input1
merci pour vos futur réponses, en espérant que vous ayez compris ma demande
