Page 1 sur 1
[..] Script en tache de fond
Posté : mar. 06 sept. 2011 08:47
par telmpwav
bonjour,
j'ai créer un petit script qui me permet de faire mes mises a jour et mes sauvegarde de mon logiciel automatiquement, en utilisant des MouseClick et des MouseMoves...
le probléme est que ça monopolise ma sourie.
comment puis-je faire pour mettre en tache de fond et ainsi me permettre de travailler en même temps?
merci
Re: [..] Script en tache de fond
Posté : mar. 06 sept. 2011 09:15
par sksbir
bonjour
Tu ne peux pas : ton PC n'a qu'une seule souris. Soit c'est toi qui l'utilise, soit c'est autoit.
Re: [..] Script en tache de fond
Posté : mar. 06 sept. 2011 09:24
par mikell
telmpwav a écrit :le probléme est que ça monopolise ma sourie.
Tu as tout compris
http://www.autoitscript.fr/forum/viewto ... 264#p54264
Il ne te reste plus qu'à refaire ton script en éliminant tout les Send() ou MouseTruc() pour les remplacer par de vraies fonctions
Cherche sur le forum, ce sujet a déjà été traité
Re: [..] Script en tache de fond
Posté : lun. 12 sept. 2011 17:14
par telmpwav
merci pour ta réponse ,
y-a-t-il d'autre options pour que j'active un bouton sans déplacer ma sourie (mouseclick)?
cordialement,
Re: [..] Script en tache de fond
Posté : lun. 12 sept. 2011 18:16
par mikell
Cherche sur le forum, ce sujet a déjà été traité
Hum

Bon un indice, cherche dans les fonctions Control... dans l'aide c'est sous Windows Management => Controls
Re: [..] Script en tache de fond
Posté : mar. 13 sept. 2011 09:49
par telmpwav
merci,
j'ai justement regarder un peu les tutos ,
j'ai joué un peu avec le ControlSend
du type
► Afficher le texte
ControlSend ("Sans titre - Bloc-notes", "", "Edit1", "Ceci est du texte")
mais le controlclick ne m'aime pas
je veux par exemple un click simple sur "fichier" de notepad
► Afficher le texte
ControlClick ( "Sans titre - Bloc-notes" , "" , "Notepad","left",1,374,145 )
rien , alors si tu as un tuto plus éfficace,
ps: je me suis aider de (Frozen) AutoIt windows info pour mes paramêtres
Re: [..] Script en tache de fond
Posté : mar. 13 sept. 2011 10:28
par legend
généralement il y a pas de tutos a propos des fonctions d'autoit apart du fichier aide. (tu appuie sur F1 et tu commencer a chercher ^^)
la documentation F1 d'autoit est complète et efficace, cependant elle est trop directe. donc il te faut des prérequis en informatique.
donc si tu jette un coup d'oeil a tes deux lignes tu trouvera qu'il y a un paramètre différent (le 3éme) si tu le change en "Edit1" dans le controlclick ça marchera.
mais il faut comprendre ce que ça fait. les deux premiers paramétres des fonctions control . . . . sont pour identifier la fenêtre sur laquelle on veut travailler, le 3éme c'est pour identifier le control puisque une fenêtre contient généralement plusieurs controls. pour l'identifier, il y a quelques moyens. le meilleur c'est la classe et l'instance. la classe est le type du control comme par exemple : bouton, edit, input . . .
l'instance c'est quand il y a plusieurs controls du même type, on peut faire : edit1, edit2, edit3.
généralement la forme correct pour écrire cela se trouve dans autoitwindowinfo (frozen ^^) dans l'onglet Control : Advanced Mode.
pour le control principal de ma fenêtre chrome c'est : "[CLASS:Chrome_RenderWidgetHostHWND; INSTANCE:1]".
Re: [..] Script en tache de fond
Posté : mar. 13 sept. 2011 11:50
par telmpwav
bonjour legend,
j'ai lu pas mal de tuto , et je te confirme qu'un novice comme moi et un peu perdu ( mais il faut bien commencer un jour

), j'ai plus de notion dans les algorithmes que dans les interfaces ( enfin je vais pas raconter ma vie non plus...)
pour revenir à notre sujet , si je met Edit1 dans ma ligne (de controlClick) il m'envoie sur ma page blanche de mon bloc note ( j'avais déja testé

), moi je veux qu'il me click le mot "fichier" (pour faire par exemple fichier/ouvrir... , je rappelle que je m’entraîne et que cela peux servir à d'autre).
j'ai chercher l'instance de "fichier" mais contrairement à la page blanche qui est Edit1 , frozen ne me donne rien
c'est pour cela qui j'ai mis les positions X et Y , mais cela ne marche pas mieux.
sinon pour le ControlSend
si je met
► Afficher le texte
ControlSend ("Sans titre - Bloc-notes", "", "[CLASS: Edit; INSTANCE: 1]", "Ceci est du texte")
ça marche pas
mais
► Afficher le texte
ControlSend ("Sans titre - Bloc-notes", "", "Edit1", "Ceci est du texte")
marche
une explication ? car tu as l'air de préférer la première synthaxe.
Re: [..] Script en tache de fond
Posté : mar. 13 sept. 2011 13:27
par mikell
telmpwav a écrit : moi je veux qu'il me click le mot "fichier" (pour faire par exemple fichier/ouvrir... , je rappelle que je m’entraîne et que cela peux servir à d'autre).
Eventuellement y aurait aussi la piste des raccourcis clavier
Ou alors, contourner le problème (par exemple, ouvrir un fichier texte avec un ShellExecute)
Re: [..] Script en tache de fond
Posté : mar. 13 sept. 2011 15:44
par telmpwav
Les raccourcis clavier me font revenir au point de départ , mon clavier est monopolisé est je ne peux plus travaillé,
Le but étant que tout s'exécute en tâche de fond, un peu comme messenger ou ccleaner , etc.
Pour que cela ne me gêne pas dans mon activité.
Autoit en est-il pas capable?
Re: [..] Script en tache de fond
Posté : mar. 13 sept. 2011 16:10
par PandiPanda
essayer ceci?
Code : Tout sélectionner
Opt("WinTitleMatchMode", 2)
ControlSend("Notepad++", "","Edit1", "!f")
ou ceci;
Code : Tout sélectionner
Opt("WinTitleMatchMode", 2)
ControlSend("Notepad++", "","[CLASS:SysTabControl32; INSTANCE:5]", "!{F4}")
Re: [..] Script en tache de fond
Posté : mar. 13 sept. 2011 16:18
par telmpwav
merci,
je sais pas ce que cela devais faire , mais ça n'a rien fait
j'étais justement en train de me documenté sur tout ce qui touche au Win[..], peut-être une meilleur piste
le WinMenuSelectItem permet d'activé le bouton "fichier", "nouveau", bien pour NotePad , mais comment l'activé sur mon logiciel spécialisé...
► Afficher le texte
WinMenuSelectItem("[CLASS:Notepad]", "", "&Fichier", "&nouveau ")
par contre je n'ai pas encore trouvé juste "fichier" , si j'enléve "nouveau" (ou si je met " ") de la synthaxe rien ne se passe.
il me faudra une commande du genre WinMenuSelectBouton

, je cherche , je cherche...
Re: [..] Script en tache de fond
Posté : mar. 13 sept. 2011 16:28
par PandiPanda
étrange chez moi ca fonctionne parfaitement mes petit ControlSend() ^^'
vous pouvez afficher une image de votre summary de "autoit window Info"? ca devrai nous aider à fournir des idées
Re: [..] Script en tache de fond
Posté : mar. 13 sept. 2011 19:18
par mikell
PandiPanda a écrit :étrange chez moi ca fonctionne parfaitement mes petit ControlSend() ^^'
Voui mais il a peut-être pas Notepad
++ 
Re: [..] Script en tache de fond
Posté : ven. 16 sept. 2011 16:38
par telmpwav
Bonjour,
alors oui effectivement j'ai pas notepad++, mais bon j'avais quand même enlever les ++, (novice mais pas trop

)
je manie mieux les controls, en fait il fait pas mettre de Class et ça marche
mon probléme est le suivant :
► Afficher le texte
ControlClick( "logiciel", "","","left",1,500,350)
sleep(5000)
ControlSend("logiciel", "", " ", "test")
bon, je clic au bonne endroit , mon curseur est là ;
mais quand mon ControlSend se met en route mon curseur disparait , et bien sur mon test n'apparaît nul par
que faire?
j'ai testé en positionnant manuellement le curseur , et que je lance le ControlSend ça marche.
donc il enregistre pas la position de mon curseur.
Re: [..] Script en tache de fond
Posté : ven. 16 sept. 2011 22:16
par mikell
telmpwav a écrit :novice mais pas trop
Toutes mes excuses
C'est juste que les ids des controles ne sont sans doute pas les mêmes sur Notepad et Notepad++ ... ^^
Le problème vient peut-être du fait que le controle sur lequel tu fais le ControlClick et celui sur lequel tu fais le ControlSend ne sont pas les mêmes
Faudrait essayer qqe chose du genre
Code : Tout sélectionner
ControlClick( "logiciel", "","","left",1,500,350)
$a = ControlGetFocus("logiciel") ; <= le Send se fera sur le controle qui a le focus
ControlSend("logiciel", "", $a, "test") ; ou ControlSetText("logiciel", "", $a, "test")