Page 1 sur 1

[R] Ignore les Fonctions

Posté : lun. 14 nov. 2011 18:50
par playmobil
bonsoir, débutant complétement dans AutoIt et avec le sentiment d'avoir découvert une perle, je fait appel a vous pour me débloquer.
je suis en plein décorticage de tuts et mon premier semble une vraie galere.
le code suivant devrais me lancer notepad et ecrire en auto "bonjour...".
Mais voilà quand je fait exécuter notepad se lance bien mais s’arrête au niveau de "ControlSend" alors voilà! j'ai essayé aussi avec d'autres telles que "controlclick" (super pratique avec windows Info) mais rien de rien. Faut t'il les déclarer auparavant? y a t'il une configuration spéciale?.
Merci pour votre aide.
playmobil

Code : Tout sélectionner

; Début du script - Ajouter votre code ci-dessous.
Run ("notepad.exe")
sleep(250)
ControlSend("[CLASS:Notepad]", "", "Edit1", "Bonjour les amis du zero !!")

Re: [..] Ignore les Fonctions

Posté : lun. 14 nov. 2011 21:00
par bob
Je viens d'essayer ces quelques lignes et cela fonctionne ici.( OK pour l'ouverture de Notepad et l'affichage de la phrase - sans les points d'exclamation... ).

Re: [..] Ignore les Fonctions

Posté : lun. 14 nov. 2011 21:11
par blacksoul305
Salut, pour le problème de tes points d'exclamation, rends-toi sur l'aide d'Autoit pour la commande "Send". En effet, le "!" pour cette commande veut dire "Appuyer sur ALT". Pour mettre des points d'exclamation donc, il te faudra mettre {!} !

Send("Allez, à plus {!}")

Re: [..] Ignore les Fonctions

Posté : lun. 14 nov. 2011 22:09
par playmobil
merci pour votre réactivité, mais il refuse décidément de valider ou de cliquer sur la moindre fenêtre.
je suis sous XP SP3 y a t'il une incompatibilité quelconque?, une autorisation a paramétrer? c'est dommage de buter là dessus je sens qu'il en a sous le pied ce soft!
Le but final étant de reconfigurer un PC sur lequel j'ai changé carte mère et processeur sans réinstaller Windows :mrgreen: :mrgreen: coreI3 ->P4. j'ai évité l'écran bleu mais tout est en rideau, il faut atteindre la BdR et tout reconfigurer car je n'ai plus de clavier ni de souris.(trop sympa le chalenge!!) mais pour cela il faut que je puisse valider mes fenêtres sur un PC sain.
playmobil

Re: [..] Ignore les Fonctions

Posté : lun. 14 nov. 2011 22:19
par Tlem
Le Bloc-notes tout comme beaucoup d'applications qui seraient en premier plan, n'ont aucunement besoin d'un ControlSend.
Un simple Send suffit largement (voir ici).

Re: [..] Ignore les Fonctions

Posté : lun. 14 nov. 2011 23:37
par playmobil
merci thierry le send envoie bien ma séquence mais dans l'exemple donné le "WinClose" ne fonctionne pas non plus, j'ai le sentiment que toute intervention sur une fenêtre est tout simplement ignoré, bizarre! bizarre!
Donc pour l'instant WinClose,ControlClick,ControlCommand ne marche pas et en parcourant le forum je ne trouve pas de problème similaire.Demain j'essaie sur un autre Pc pour en avoir le coeur net!
bonne soirée
playmobil

Re: [..] Ignore les Fonctions

Posté : mar. 15 nov. 2011 10:43
par bob
En copiant le script du tutoriel cité par Tlem, cela n'ouvre que Notepad :

Run("notepad.exe")
WinWaitActive("Sans titre - Bloc-notes")
Send("This is some text.")
WinClose("Sans titre - Bloc-notes")
WinWaitActive("Bloc-notes", "Voulez-vous enregistrer les modifications")
Send("!n")

En suivant l'aide du Tuto et en utilisant "Autoit v3 Window Info", il suffit de copier le titre exact "Sans titre - Bloc-Notes" qui s'affiche et de remplacer ce titre dans le script.
Il y a une différence au niveau des 2 titres (voir les caractères cachés avec Word ) : marques d'espace,... (?) DIFFERENTS. Il faut donc bien utiliser "Autoit v3 Window Info" pour avoir le nom exact de la fenêtre.
Cela est sans doute du au "Copier/Coller" ?
NB : Le "petit rond" semble correspondre à un espace insécable de Word, mais en le copiant -collant dans le script, cela ne fonctionne pas.

[R] Ignore les Fonctions

Posté : mar. 15 nov. 2011 12:49
par playmobil
Heureusement que Bob m'a alerté concernant la syntaxe, car effectivement le NotePad ouvert tout fraichement est accessible avec un nom de fenêtre tel que "sans titre - notepad", mais dés la première modification elle prend un nom différent " * sans titre - notepad".
Voici mon code fonctionnelle

Code : Tout sélectionner

Run("notepad.exe")
WinWaitActive("Sans titre - Notepad")
Send("This is some text.")
WinClose("* Sans titre - Notepad")
WinWaitActive("Notepad")
Send("!N")
 
Mais alors comment peut fonctionner l'exemple du tut? apparemment cela a l'air de tourner chez vous!
Dans tous les cas une porte s'ouvre et je fonce!!
merci a tous, Bon app!
playmobil :D

Re: [..] Ignore les Fonctions

Posté : mar. 15 nov. 2011 13:59
par mikell
Je sré toi je passerais par un WinGetHandle, plus précis
l'aide a écrit :Once you have obtained the handle you can access the required window even if its title changes.
ou alors un Opt("WinTitleMatchMode", -2) qui donne de la souplesse aux titres

Code : Tout sélectionner

Opt("WinTitleMatchMode", -2)
Run("notepad.exe")
WinWaitActive("notepad")
$handle = WinGetHandle("notepad")
WinClose($handle)
Image

Re: [..] Ignore les Fonctions

Posté : mar. 15 nov. 2011 14:11
par sylvanie
@playmobil : si vous estimez que le post est résolu, il faut mettre le [R] en éditant le 1er post pour qu'il y ai répercussion sur le message entier. Merci

Re: [..] Ignore les Fonctions

Posté : mar. 15 nov. 2011 15:57
par bob
Pour fermer le bloc-notes, les instructions ont changé : Send("!r")
comme le montre Autoit windows info :
&Enregistrer
Ne pas en&registrer
Annuler

Pour que le script fonctionne, j'ai du aussi enlever 1 ligne car le script reste bloqué à Send("!r")

; WinWaitActive("Bloc-notes", "Voulez-vous enregistrer les modifications") qui pourrait être remplacé par sleep(???) pour que l'on ait le temps de voir que cela fonctionne,

Re: [R] Ignore les Fonctions

Posté : mar. 15 nov. 2011 17:04
par Tlem
playmobil a écrit :mais dés la première modification elle prend un nom différent " * sans titre - notepad".
:shock:
Je n'ai pas ce comportement sur mon XP SP3, mon Seven 32 Starter Edition, ou le Seven 64 Pro du PC de mon collègue sur lequel je vient de tester à l'instant.

Re: [R] Ignore les Fonctions

Posté : mar. 15 nov. 2011 22:01
par bob
Pareil ici : pas changement de nom.

Re: [R] Ignore les Fonctions

Posté : mar. 15 nov. 2011 22:30
par playmobil
Je trouve curieux le comportement aléatoire d'une machine a l'autre, alors effectivement chacun fini par trouver une soluce a son problème mais question portabilité c'est pas gagné...
je vais ma pencher sur "WinGetHandle" pour être moins tributaire d'une syntaxe.
quelle merveille ce "AutoIt" je suis tombé dessus par hasard mais ai vraiment envie de l'utiliser, d'autant que je sens qu'il va bien me servir pour automatiser certaines taches sur Mapinfo et des requêtes...
playmobil

Re: [R] Ignore les Fonctions

Posté : mar. 15 nov. 2011 22:53
par Tlem
La deuxième solution de mikell me parait plus simple à mettre en œuvre. :mrgreen:

Ceci-dit, le handle de la fenêtre sera unique et donc certainement plus fiable.
Mais comme vous automatisez une tache d’écriture dans le bloc-notes, en dehors de ce que vous avez relevé, il ne devrait pas y avoir de grand changement dans le titre, donc on en revient à la deuxième solution de mikell. :roll:

Par contre, il serait intéressent de comprendre pourquoi vous avez cette modification de titre, car vous n'êtes probablement pas le seul et unique à qui cela risque d'arriver.
Avez-vous rajouté des choses ?
Quel est votre OS et quelle version ?
Utilisez-vous des softs résidents susceptible de provoquer cette modification ?

Re: [R] Ignore les Fonctions

Posté : mer. 16 nov. 2011 17:08
par playmobil
Bonjour! j'en profite qu'il fasse 0° dehors pour faire mon "Méa Culpa" et apporter la solution a ces problemes de syntaxe.En fait je fait mes bidouilles sur un PC dédié qu'a ça! et il s’avère que loin d'en être fier je suis sur une version "Rock&Roll" de Windows XP "Sp3 UE Mad Dog" et le notepad en fait! bien que très ressemblant n'est pas le même que celui que Bill fournit avec un Pack acheté.
Donc ceci me servira de leçon! au moins si le problème se déclare sur une machine en essayant des bidouilles sur le Notepad on saura pourquoi!
playmobil

Re: [R] Ignore les Fonctions

Posté : mer. 16 nov. 2011 17:59
par jchd
Pour votre pénitence, mon fils vous nous ferez 3 UDFs, 5 traductions et un don.

Allez en paix, mais pour l'amour du Ciel, cessez de bidouiller :P

Re: [R] Ignore les Fonctions

Posté : mer. 16 nov. 2011 19:05
par mikell
playmobil a écrit : le notepad en fait bien que très ressemblant n'est pas le même que celui que Bill fournit avec un Pack acheté.
Voui mais quel que soit le niveau d'infamie de la bidouille, le WinGetHandle marchera infailliblement :P