[..] Script en tache de fond

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
telmpwav
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 05 sept. 2011 22:03
Status : Hors ligne

[..] Script en tache de fond

#1

Message 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
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..] Script en tache de fond

#2

Message 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.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Script en tache de fond

#3

Message 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é
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
telmpwav
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 05 sept. 2011 22:03
Status : Hors ligne

Re: [..] Script en tache de fond

#4

Message 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,
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Script en tache de fond

#5

Message par mikell »

Cherche sur le forum, ce sujet a déjà été traité
Hum Image
Bon un indice, cherche dans les fonctions Control... dans l'aide c'est sous Windows Management => Controls
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
telmpwav
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 05 sept. 2011 22:03
Status : Hors ligne

Re: [..] Script en tache de fond

#6

Message par telmpwav »

merci,

j'ai justement regarder un peu les tutos ,

j'ai joué un peu avec le ControlSend :D

du type
► Afficher le texte
mais le controlclick ne m'aime pas

je veux par exemple un click simple sur "fichier" de notepad
► Afficher le texte
rien , alors si tu as un tuto plus éfficace,


ps: je me suis aider de (Frozen) AutoIt windows info pour mes paramêtres
Avatar du membre
legend
Niveau 7
Niveau 7
Messages : 472
Enregistré le : dim. 26 sept. 2010 12:55
Status : Hors ligne

Re: [..] Script en tache de fond

#7

Message 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]".
Avatar du membre
telmpwav
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 05 sept. 2011 22:03
Status : Hors ligne

Re: [..] Script en tache de fond

#8

Message 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 :wink: ), 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é :wink: ), 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
ça marche pas

mais
► Afficher le texte
marche

une explication ? car tu as l'air de préférer la première synthaxe.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Script en tache de fond

#9

Message 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)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
telmpwav
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 05 sept. 2011 22:03
Status : Hors ligne

Re: [..] Script en tache de fond

#10

Message 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?
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Script en tache de fond

#11

Message 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}")
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Avatar du membre
telmpwav
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 05 sept. 2011 22:03
Status : Hors ligne

Re: [..] Script en tache de fond

#12

Message par telmpwav »

merci,

je sais pas ce que cela devais faire , mais ça n'a rien fait :D

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
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 :lol: , je cherche , je cherche...
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Script en tache de fond

#13

Message 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
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Script en tache de fond

#14

Message par mikell »

PandiPanda a écrit :étrange chez moi ca fonctionne parfaitement mes petit ControlSend() ^^'
Voui mais il a peut-être pas Notepad++ Image
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
telmpwav
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 05 sept. 2011 22:03
Status : Hors ligne

Re: [..] Script en tache de fond

#15

Message par telmpwav »

Bonjour,

alors oui effectivement j'ai pas notepad++, mais bon j'avais quand même enlever les ++, (novice mais pas trop :P )

je manie mieux les controls, en fait il fait pas mettre de Class et ça marche :D

mon probléme est le suivant :
► Afficher le texte
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 :shock:

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.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Script en tache de fond

#16

Message par mikell »

telmpwav a écrit :novice mais pas trop :P
Toutes mes excuses :mrgreen:
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")
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Répondre