Page 1 sur 1
[R] Erreur script
Posté : sam. 04 juil. 2009 03:20
par Mandracord
Bonsoir j'aimerais que vous jetiez un petit coups d'œil, mon programme de rangement marchait jusqu'à que j'essaie d'automatiser un peu plus le script en lui faisant fermer les msgbox seul
► Afficher le texte
Code : Tout sélectionner
MsgBox(0, "Rangement de dossier", "Pour lancer le rangement veuillez patienter")
Sleep(5000)
Send("{ENTER}")
Global $i = 0
For $i = 0 To 10 Step 1
$coord = PixelSearch(0, 0, 1023, 767, 0x86C0F1)
MouseClick("left", $coord[0], $coord[1])
Send("^x")
$coord = PixelSearch(0, 0, 1023, 767, 0xFFB409)
MouseClick("left", $coord[0], $coord[1], 2, 500)
MouseClick("left", $coord[0], $coord[1])
Sleep(2000)
Send("^v")
Sleep(500)
Send("!{F4}")
MsgBox(0, "Rangement en cours", "Et 1 dossier de rangé 1!")
Send("{ENTER}")
Next
MsgBox(0,"rangement", "Rangement terminé")
Re: [..] Erreur script
Posté : sam. 04 juil. 2009 03:30
par Iste
les msgbox mettent en pose le programme
donc le send() ne se fera pas tant que le message sera la (c'est balo hein ^^)
mais tu peux mettre un timeout a tes msgbox, regarde dans la doc
Re: [..] Erreur script
Posté : sam. 04 juil. 2009 03:33
par orax
Le script n'aurait-il pas le but de déplacer des dossiers ? Si c'est ce que je pense, il y a plus simple (enfin... tout dépend de ce que sont les "dossiers").
Re: [..] Erreur script
Posté : sam. 04 juil. 2009 13:06
par Mandracord
En faite mes dossier et photo que je télécharge en masse pour mon blog et facebook XD, vous êtes encore sur l'idée que je veux faire un bot :s, bon tant pis moi je connais mes intentions... Bon j'ai réussi à le faire fonctionner jusqu'à qu'il n'y est plus de dossier a ranger.... sa m'affiche une erreur embêtante y-a-t-il un moyen pour éviter cette erreur?
► Afficher le texte
Code : Tout sélectionner
MsgBox(0, "Rangement de dossier", "Pour lancer le rangement veuillez patienter", 3)
Sleep(5000)
Global $i = 0
For $i = 0 To 10 Step 1
$coord = PixelSearch(0, 0, 1023, 767, 0x86C0F1)
MouseClick("left", $coord[0], $coord[1])
Send("^x")
$coord = PixelSearch(0, 0, 1023, 767, 0xFFB409)
MouseClick("left", $coord[0], $coord[1], 2, 500)
MouseClick("left", $coord[0], $coord[1])
Sleep(2000)
Send("^v")
Sleep(500)
Send("!{F4}")
MsgBox(0, "Rangement en cours", "Et 1 dossier de rangé 1!", 3)
Next
MsgBox(0,"rangement", "Rangement terminé")
Re: [..] Erreur script
Posté : sam. 04 juil. 2009 14:02
par jumby
Ton problème vient de la fonction pixelsearch lorsqu'il n'y a plus de dossier :
Success: Returns a two-element array of pixel's coordinates. (Array[0] = x, Array[1] = y)
Failure: Sets @error to 1 if color is not found.
Pour corriger ce problème :
► Afficher le texte
Code : Tout sélectionner
MsgBox(0, "Rangement de dossier", "Pour lancer le rangement veuillez patienter", 3)
Sleep(5000)
Global $i = 0
For $i = 0 To 10 Step 1
$coord = PixelSearch(0, 0, 1023, 767, 0x86C0F1)
if Not @error Then
MouseClick("left", $coord[0], $coord[1])
Send("^x")
$coord = PixelSearch(0, 0, 1023, 767, 0xFFB409)
MouseClick("left", $coord[0], $coord[1], 2, 500)
MouseClick("left", $coord[0], $coord[1])
Sleep(2000)
Send("^v")
Sleep(500)
Send("!{F4}")
MsgBox(0, "Rangement en cours", "Et 1 dossier de rangé 1!", 3)
Else
Exitloop 1 ; Le pixel n'a pas été trouvé, il n'y a plus de dossier à ranger, on quitte la boucle.
Endif
Next
MsgBox(0,"rangement", "Rangement terminé")
Re: [R] Erreur script
Posté : sam. 04 juil. 2009 14:09
par Mandracord
Je te remercie

sa fonctionne tres bien maintenant j'ai plus qu'à faire une version jpeg et c'est fini merci

mais pourrait tu m'expliquer comment tu as fait car j'ai pas bien compris je débute un peu..
Re: [..] Erreur script
Posté : sam. 04 juil. 2009 14:16
par jumby
Oui bien sûr.
Comme je l'ai dit précédemment, la fonction Pixelsearch retourne les coordonnées X et Y si le pixel cherché est trouvé, sinon la fonction déclare une erreur :
Success: Returns a two-element array of pixel's coordinates. (Array[0] = x, Array[1] = y)
Failure: Sets @error to 1 if color is not found.
Dans ton script posant problème, il y avait :
$coord = PixelSearch(0, 0, 1023, 767, 0x86C0F1)
MouseClick("left", $coord[0], $coord[1])
Or, la fonction MouseClick qui suit la fonction PixelSearch dépend directement de cette dernière. Si la fonction PixelSearch ne retourne pas de valeur mais une erreur, la fonction Mouseclick n'est pas correct. Le script s'arrête.
Il va donc falloir rajouter une condition. Cette condition sera là pour s'assurer qu'il n'y a pas d'erreur pour continuer toute l'autre partie du code :
if Not @error Then
MouseClick("left", $coord[0], $coord[1])
...
Endif
Re: [..] Erreur script
Posté : sam. 04 juil. 2009 14:33
par Mandracord
Un grand merci à toi maintenant je sais enlever des erreur comme celle-ci

et j'ai parfaitement compris

Re: [..] Erreur script
Posté : sam. 04 juil. 2009 14:56
par Mandracord
Pour ne pas refaire un sujet j'aimerais continuer ici, j'aimerai mettre sur mon script des fenêtre me permettant de choisir se que je vais ranger et relier ces boutons mais je ne sais pas comment faire, en faite j'aimerai mettre une fenêtre avec les boutons ecris dessus : jpeg, dossier, application de jeu etc... merci de m'aider
► Afficher le texte
Code : Tout sélectionner
MsgBox(0, "Rangement de dossier", "Pour lancer le rangement veuillez patienter", 3)
Sleep(5000)
Global $i = 0
For $i = 0 To 10 Step 1
$coord = PixelSearch(0, 0, 1023, 767, 0x86C0F1)
if Not @error Then
MouseClick("left", $coord[0], $coord[1])
Send("^x")
$coord = PixelSearch(0, 0, 1023, 767, 0xFFB409)
MouseClick("left", $coord[0], $coord[1], 2, 500)
MouseClick("left", $coord[0], $coord[1])
Sleep(2000)
Send("^v")
Sleep(500)
Send("!{F4}")
MsgBox(0, "Rangement en cours", "Et 1 dossier de rangé 1!", 3)
Else
Exitloop 1 ; Le pixel n'a pas été trouvé, il n'y a plus de dossier à ranger, on quitte la boucle.
Endif
Next
MsgBox(0,"rangement", "Rangement terminé")
Je ne sais pas du tout comment m'y prendre...
Re: [..] Erreur script
Posté : sam. 04 juil. 2009 15:02
par jumby
Pour tout ce qui est création de GUI, je te conseil fortement d'utiliser Koda.
Il te permettra d'élaborer ta fenêtre, en y placant les boutons de ton choix et de te donner le code autoIt correspondant à ta fenêtre.
La dernière version est téléchargeable
ici.
Re: [..] Erreur script
Posté : sam. 04 juil. 2009 15:09
par Mandracord
merci mais je ne sais pas relier les bouton aux fonction de recherche pixel et comment sépare celle-ci ... si tu pouvais e montrer un exemple ^^ pour m'éclairer
► Afficher le texte
Code : Tout sélectionner
MsgBox(0, "Rangement de dossier", "Pour lancer le rangement veuillez patienter", 3)
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=C:\Documents and Settings\selim\Bureau\koda_1.7.2.0\Forms\bot beta.kxf
$Form1 = GUICreate("Form1", 633, 453, 190, 178)
$Button1 = GUICtrlCreateButton("Jpeg", 80, 210, 113, 33, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("Veuillez choisir une option", 253, 128, 126, 17)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$Button2 = GUICtrlCreateButton("dossier", 248, 210, 137, 33, $WS_GROUP)
$Button3 = GUICtrlCreateButton("aplication", 432, 210, 161, 33, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
EndSwitch
WEnd
Sleep(5000)
Global $i = 0
For $i = 0 To 10 Step 1
$coord = PixelSearch(0, 0, 1023, 767, 0x86C0F1)
if Not @error Then
MouseClick("left", $coord[0], $coord[1])
Send("^x")
$coord = PixelSearch(0, 0, 1023, 767, 0xFFB409)
MouseClick("left", $coord[0], $coord[1], 2, 500)
MouseClick("left", $coord[0], $coord[1])
Sleep(2000)
Send("^v")
Sleep(500)
Send("!{F4}")
MsgBox(0, "Rangement en cours", "Et 1 dossier de rangé 1!", 3)
Else
Exitloop 1 ; Le pixel n'a pas été trouvé, il n'y a plus de dossier à ranger, on quitte la boucle.
Endif
Next
ou quelqu'un d'autre^^
MsgBox(0,"rangement", "Rangement terminé")
Re: [..] Erreur script
Posté : sam. 04 juil. 2009 15:48
par tolf
@Mandracord : la balise de code se met dans celle de spoiler donc éditez vos messages.
Re: [..] Erreur script
Posté : sam. 04 juil. 2009 15:54
par jumby
Il faut utiliser la fonction Case.
Voici un exemple :
► Afficher le texte
Code : Tout sélectionner
MsgBox(0, "Rangement de dossier", "Pour lancer le rangement veuillez patienter", 3)
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section
$Form1 = GUICreate("Form1", 633, 453, 190, 178)
$Button1 = GUICtrlCreateButton("Jpeg", 80, 210, 113, 33, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("Veuillez choisir une option", 253, 128, 126, 17)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$Button2 = GUICtrlCreateButton("dossier", 248, 210, 137, 33, $WS_GROUP)
$Button3 = GUICtrlCreateButton("aplication", 432, 210, 161, 33, $WS_GROUP)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
; place ici la partie du script a exécuter après l'appui du button1
msgbox(0, 'Jpeg button', 'Jpeg button'
Case $Button2.
; place ici la partie du script a exécuter après l'appui du button2
msgbox(0, 'Dossier button', 'Dossier button')
Case $Button3
; place ici la partie du script a exécuter après l'appui du button3
msgbox(0, 'Application button', 'Application button')
EndSwitch
WEnd
Re: [..] Erreur script
Posté : sam. 04 juil. 2009 17:03
par orax
Le script n'aurait-il pas le but de déplacer des dossiers ? Si c'est ce que je pense, il y a plus simple (enfin... tout dépend de ce que sont les "dossiers").
En faite mes dossier et photo que je télécharge en masse pour mon blog et facebook XD, vous êtes encore sur l'idée que je veux faire un bot :s
Non je cherche seulement à comprendre, je demande ça puisque si c'est pour déplacer des dossiers/fichiers (déplacement avec l'explorateur par exemple) il y a quand même plus simple avec
DirMove() et
FileMove().
Re: [..] Erreur script
Posté : sam. 04 juil. 2009 17:21
par Mandracord
Je connais pas du tout cette façon et vu que je veux le faire que sur mon bureau... pas encore test la fonction case je vais essayer un peu plus tard ^^'
Re: [..] Erreur script
Posté : sam. 04 juil. 2009 18:00
par Mandracord
J'ai essayé case mais sa ne fonctionne pas, sa me met une erreur a partir du bouton 1, donc je n'ai pas continué et sa donne sa
► Afficher le texte
Code : Tout sélectionner
MsgBox(0, "Rangement de dossier", "Pour lancer le rangement veuillez patienter", 3)
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=C:\Documents and Settings\selim\Bureau\koda_1.7.2.0\Forms\bot beta.kxf
$Form1 = GUICreate("Form1", 633, 453, 190, 178)
$Button1 = GUICtrlCreateButton("jpg", 80, 210, 113, 33, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("Veuillez choisir une option", 253, 128, 126, 17)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$Button2 = GUICtrlCreateButton("dossier", 248, 210, 137, 33, $WS_GROUP)
$Button3 = GUICtrlCreateButton("application", 432, 210, 161, 33, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Case $Button1
MsgBox(0, "jpeg", "Le rangement de jpeg est lancé", 4)
While 1
$coord = PixelSearch( 0, 0, 1023, 767, 0xFE1F1F)
If Not @error Then
MouseClick("Left", $coord[0], $coord[1], 1, 1)
MsgBox( 0, "Fonctionne?", "sa fonctionne!", 2)
EndIf
WEnd
Merci d'avance pour votre aide et pour ceux qui m'ont aidé
Re: [..] Erreur script
Posté : sam. 04 juil. 2009 18:59
par ani
bonjour,
veuillez relire la réponse de jumby svp :
http://www.autoitscript.fr/forum/viewto ... 253#p19253
et avec
http://www.autoitscript.fr/forum/viewto ... 247#p19247
vous introduisez toute ce qui se trouve en dehors du mot wend et vous le coller juste en dessous du mot case $bouton.
bonne continuation

Re: [..] Erreur script
Posté : sam. 04 juil. 2009 21:11
par Mandracord
Bon j'ai lu et relu voilà se que j'ai fait et sa me met une erreur avec wend :
► Afficher le texte
Code : Tout sélectionner
MsgBox(0, "Rangement de dossier", "Pour lancer le rangement veuillez patienter", 3)
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=C:\Documents and Settings\selim\Bureau\koda_1.7.2.0\Forms\bot beta.kxf
$Form1 = GUICreate("Form1", 633, 453, 190, 178)
$Button1 = GUICtrlCreateButton("jpeg", 80, 210, 113, 33, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("Veuillez choisir une option", 253, 128, 126, 17)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$Button2 = GUICtrlCreateButton("dossier", 248, 210, 137, 33, $WS_GROUP)
$Button3 = GUICtrlCreateButton("application", 432, 210, 161, 33, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
MsgBox(0, "", "Le lancement de jpegest effectué", 2)
Global $i = 0
For $i = 0 To 10 Step 1
$coord = PixelSearch(0, 0, 1023, 767, 0x86C0F1)
if Not @error Then
MouseClick("left", $coord[0], $coord[1])
Send("^x")
$coord = PixelSearch(0, 0, 1023, 767, 0xFFB409)
MouseClick("left", $coord[0], $coord[1], 2, 500)
MouseClick("left", $coord[0], $coord[1])
Sleep(2000)
Send("^v")
Sleep(500)
Send("!{F4}")
MsgBox(0, "Rangement en cours", "Et 1 dossier de rangé 1!", 3)
Else
Exitloop 1 ; Le pixel n'a pas été trouvé, il n'y a plus de dossier à ranger, on quitte la boucle.
Endif
Next
MsgBox(0,"rangement", "Rangement terminé")
WEnd
Re: [..] Erreur script
Posté : sam. 04 juil. 2009 21:22
par jumby
Vous avez rajouté un wend à la fin.
Re: [..] Erreur script
Posté : dim. 05 juil. 2009 01:00
par ani
il vous manques la fermeture au niveau du switch