Cela fait deux jours que je me suis lancé dans autoit, je commence mon premier
scripts, et j'ai un petit soucis de lenteur, alors qu'il n'est pas fini.
il est très lent à se fermer ou a se mettre en pause.
étant débutant je suis ouvert a toutes suggestions et corrigé des erreurs aussi,
mais taper pas trop dur quand même c'est mon premier
pour le descriptif de son usage, il me permet d'automatiser certaines tâches répétitives
sur winrar et xtremsplit par exemple
► Afficher le textetext
Code : Tout sélectionner
;#
;* Author: Xeno
;#
;* Copyright: (c) 2009
;#
;* Release Version: 0
;#
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#Include <Misc.au3>
Opt('MustDeclareVars', 1)
Local $pass, $x=450, $y=188, $size, $tab, $tabrar, $tabzip, $Button_1, $Button_2, $Button_3, $i, $Icon1, $pixcolor=0x144600, $msg, $passtest = ("saisir le mot de passe"), $ZeroCoor1, $ZeroCoor
Local $tabxtm, $checkxtmCN1, $checkxtmCN2, $checkxtmCN3
Local $tabrar, $checkrarCN1, $checkrarCN2, $checkrarCN3
;Local $tabzip, $checkzipCN1, $checkzipCN2, $checkzipCN3
Local $tabwin
Call ("createbox1")
Call ("scan2")
Func createbox1()
GUICreate("Winrar xtm", 250, 170) ; will create a dialog box that when displayed is centered
$pass = GUICtrlCreateInput("saisir le mot de passe", 6, 3, 235, 20)
GUICtrlSetState(-1, $GUI_DROPACCEPTED)
$tab = GUICtrlCreateTab(7,25,235,90) ;creation des tab
$tabxtm = GUICtrlCreateTabItem("Xtremsplit")
$checkxtmCN1 = GUICtrlCreateCheckbox("Valide le Bouton Coller", 15, 50, 170, 20)
GUICtrlSetState(-1, $GUI_CHECKED)
$checkxtmCN2 = GUICtrlCreateCheckbox("Valide le rapport", 15, 70, 170, 20)
GUICtrlSetState(-1, $GUI_CHECKED)
$checkxtmCN3 = GUICtrlCreateCheckbox("Fermer -auto", 15, 90, 170, 20)
GUICtrlSetState(-1, $GUI_CHECKED)
$tabrar = GUICtrlCreateTabItem("Winrar")
$checkrarCN1 = GUICtrlCreateCheckbox("écraser le fichier existant", 15, 50, 170, 20)
GUICtrlSetState(-1, $GUI_CHECKED)
$checkrarCN2 = GUICtrlCreateCheckbox("Fermer le rapport -auto", 15, 70, 170, 20)
GUICtrlSetState(-1, $GUI_CHECKED)
$checkrarCN3 = GUICtrlCreateCheckbox("fermer -auto", 15, 90, 170, 20)
GUICtrlSetState(-1, $GUI_UNCHECKED)
;$tabzip = GUICtrlCreateTabItem("Winzip")
;$checkzipCN1 = GUICtrlCreateCheckbox(" coller -auto", 15, 50, 170, 20)
;GUICtrlSetState(-1, $GUI_CHECKED)
;$checkzipCN2 = GUICtrlCreateCheckbox("valide le rapport -auto", 15, 70, 170, 20)
;GUICtrlSetState(-1, $GUI_CHECKED)
;$checkzipCN3 = GUICtrlCreateCheckbox("fermer -auto", 15, 90, 170, 20)
;GUICtrlSetState(-1, $GUI_CHECKED)
;$tabwin = GUICtrlCreateTabItem("Windows")
;$tababout = GUICtrlCreateTabItem("About")
GUICtrlCreateTabItem("") ;fin creation des tab
;if $i=0 then $Icon2 = GUICtrlCreateIcon("I:\icon2.ico", -1, 184, 80, 57, 49, BitOR($SS_NOTIFY,$WS_GROUP))
$Icon1 = GUICtrlCreateIcon("I:\icon1.ico", -1, 184, 120, 57, 49)
$Button_1 = GUICtrlCreateButton("Start (F11)", 15, 115, 75)
$Button_2 = GUICtrlCreateButton("Pause (F12)", 105, 115, 75)
$Button_3 = GUICtrlCreateButton("Exit", 60, 142,75)
GUISetState()
EndFunc
Func scan2()
GUICtrlSetImage ($Icon1, "I:\icon1.ico")
$i=1
While $i
$msg = GUIGetMsg()
;STOP & PAUSE
If _IsPressed("7B") = 1 then pause() ;F12 Pause
If $msg = $Button_2 then pause()
If $msg = $Button_3 Then ExitLoop
If $msg = $GUI_EVENT_CLOSE Then Exitloop
;saisi automatiquement le mot de passe si il a été saisi
If Winexists("Saisissez le mot de passe") or Winexists("Enter password") then
If GUICtrlRead($pass) = $passtest then
MsgBox(0, "Attention", "Vous n'avez pas saisi de mot de passe",5)
WinActivate("Winrar xtm")
sleep (500)
pause()
Else
WinActivate("Saisissez le mot de passe")
WinActivate("Enter password")
AutoItSetOption("SendKeyDelay", 100)
Send(GUICtrlRead($pass))
Sleep(100)
Send("{ENTER}")
EndIf
EndIf
;xtremsplit valide bouton coller -auto $checkxtmCN1
If Winexists("de") and GUICtrlRead($checkxtmCN1)=1 then
$ZeroCoor1 = WinGetPos ( "de" )
If PixelGetColor($ZeroCoor1[0] + 218, $ZeroCoor1[1] + 198) = $pixcolor and Winexists("de") then
WinActivate("de")
$ZeroCoor = WinGetPos ( "de" )
MouseClick ("left", $ZeroCoor[0] + 224,$ZeroCoor[1] + 252, 1, 15)
Endif
EndIf
;xtremsplit valide le rapport -auto $checkxtmCN2
If Winexists("-=Xtremsplit=-") and GUICtrlRead($checkxtmCN2)=1 then
WinActivate("-=Xtremsplit=-")
sleep(150)
Send("{ENTER}")
EndIf
;xtremsplit fermer -auto $checkxtmCN3
If Winexists("de") and GUICtrlRead($checkxtmCN3)=1 then
sleep(150)
$ZeroCoor1 = WinGetPos ( "de" )
If PixelGetColor($ZeroCoor1[0] + 218, $ZeroCoor1[1] + 198) <> $pixcolor then
$size=wingetclientsize ("de")
If $size[0] = $x and $size[1] = $y then
Winclose("de")
Endif
EndIf
EndIf
;winrar valide bouton écraser fichier $checkrarCN1
If Winexists("Confirmer le remplacement du fichier") And GUICtrlRead($checkrarCN1)=1 then
;WinActivate("Confirmer le remplacement du fichier")
ControlClick("Confirmer le remplacement du fichier","","Button2")
Else
;WinActivate("Confirmer le remplacement du fichier")
ControlClick("Confirmer le remplacement du fichier","","Button6")
EndIf
If Winexists("Confirm file replace") And GUICtrlRead($checkrarCN1)=1 then
;WinActivate("Confirm file replace")
ControlClick("Confirm file replace","","Button2")
Else
;WinActivate("Confirm file replace")
ControlClick("Confirm file replace","","Button6")
EndIf
;winrar valide le rapport -auto $checkrarCN2
If Winexists("WinRAR : Messages de diagnostic") And GUICtrlRead($checkrarCN2)=1 then
;WinActivate("WinRAR : Messages de diagnostic")
ControlClick("WinRAR : Messages de diagnostic","","Button1")
EndIf
If Winexists("WinRAR: Diagnostic messages") and GUICtrlRead($checkrarCN2)=1 then
;WinActivate("WinRAR: Diagnostic messages")
ControlClick("WinRAR: Diagnostic messages","","Button1")
EndIf
;winrar fermer -auto $checkrarCN3
Opt("WinTitleMatchMode", 2) ;recherche partiel du titre
If Winexists(" - WinRAR") and GUICtrlRead($checkrarCN3)=1 then
;Winclose(" - WinRAR")
WinClose("[CLASS:WinRarWindow]", "")
EndIf
;*************************************************************************************************
WEnd
GUIDelete()
EndFunc
Func pause()
GUICtrlSetImage ($Icon1, "I:\icon2.ico")
sleep(50)
while 1
$msg = GUIGetMsg()
If _IsPressed("7A") = 1 then scan2() ;F11 reprise/start
If $msg = $Button_1 then scan2()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
If $msg = $Button_3 Then ExitLoop
wend
EndFunc


