Page 1 sur 2

problème avec fonction send

Posté : mar. 11 oct. 2022 18:50
par Accessvision
Bonjour,
J'ai un script pour installer une extansion d'un logiciel.
Voici le code:

shellexecute("include\webaccess.nvda-addon")
WinWaitActive("Installation de l'extension")
Send("!o")
C'est le début du script, je n'ai pas écrit la suite.
Mon problème est que la fonction send ne s'active pas, c'est à dire que ma fenêtre d'installation s'ouvre, mais le raccourci ne s'active pas.
Je précise que la fenêtre est une vrai fenêtre qui s'ouvre présentée sous forme de boîte de dialogue.
Quelqu'un a-t-il une idée du problème?
Merci pour votre aide
Bonne soirée.

Re: problème avec fonction send

Posté : mer. 12 oct. 2022 10:39
par jpascal
Peut-être un problème avec le nom de la fenêtre (je vois qu'il y a une apostrophe).

Comment l'avez-vous récupéré ?

Re: problème avec fonction send

Posté : mer. 12 oct. 2022 10:59
par Accessvision
Bonjour,
L'apostrophe est normal, j'ai récupéré le nom de la fenêtre par l'outil d'autoit autoit windowinfo.
Avez-vous une idée?

Re: problème avec fonction send

Posté : mer. 12 oct. 2022 11:09
par jpascal
Si c'est une boîte de dialogue, le raccourci Alt o permet de valider le bouton Ouvrir j'imagine ?

Vous pouvez également utiliser la fonction ControlClick() en spécifiant le nom du contrôle correspondant à ce bouton.

Re: problème avec fonction send

Posté : mer. 12 oct. 2022 11:22
par Accessvision
Le raccourci alt o permet de cliquer sur le bouton oui, mais send ne fonctionne pas à cause que c'est une boite de dialogue?
Je vais essayé avec l'autre fonction.

Re: problème avec fonction send

Posté : mer. 12 oct. 2022 11:40
par Accessvision
Je viens de tester, mais sauf erreur de ma part ça ne marche pas, je préférerai trouver une solution pour send ou autre chose.
Merci pour vos prochaines réponses

Re: problème avec fonction send

Posté : mer. 12 oct. 2022 11:55
par jpascal
Puis-je voir votre code utilisant la fonction ControlClick() ?

Au lieu de faire Send("!o") et s'il y a un autre bouton que Oui, pouvez-vous tester avec Send("{TAB}") et voir si le bouton par défaut change ?

Re: problème avec fonction send

Posté : mer. 12 oct. 2022 15:45
par Accessvision
Voici le code que j'ai écrit:
ControlClick("Installation de l'extension", "Oui", 2)
Et ça ne marche pas non pas

Re: problème avec fonction send

Posté : mer. 12 oct. 2022 16:21
par walkson
Bonjour,
Un peu court comme code :wink:

Code : Tout sélectionner

Run("calc.exe")
Sleep(2000)
ControlClick("Calculatrice","","Button3")
Sleep(1000)
ControlClick("Calculatrice","","Button21")
Sleep(1000)
ControlClick("Calculatrice","","Button16")
Sleep(1000)
ControlClick("Calculatrice","","Button28")
Sleep(1000)
ProcessClose("calc.exe")
On utilise les ClassnameNN en général et n'hésitez pas à utiliser les sleep() même avec Send()
Et parfois ça ne marche pas..........

Re: problème avec fonction send

Posté : mer. 12 oct. 2022 16:31
par Accessvision
Bonjour,
J'ai essayé avec ce code:
shellexecute("include\webaccess.nvda-addon")
sleep(3000)
ControlClick("Installation de l'extension","","Button3")
Mais ça ne marche toujours pas même avec send

Re: problème avec fonction send

Posté : mer. 12 oct. 2022 18:03
par jpascal
Je pense vraiment que l'apostrophe pose problème.

Avez-vous copié-collé le titre de la fenêtre à partir de AU3Info ou l'avez-vous tapé ?

Testez ceci :
Opt("WinTitleMatchMode", 1) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase
$sTitle = "Installation de l"
shellexecute("include\webaccess.nvda-addon")
WinWait($sTitle)
ControlClick($sTitle,"","Button3")

Re: problème avec fonction send

Posté : mer. 12 oct. 2022 18:16
par Accessvision
Je vienss d'essayer, mais comme d'habitude, ma fenêtre s'ouvre mais aucune action de raccourci avec controlclick ou send

Re: problème avec fonction send

Posté : mer. 12 oct. 2022 20:07
par jpascal
Avec certains programmes, l'affichage du contenu de la fenêtre peut ne pas être immédiat.

Ajouter Sleep(3000) avant le ControlClick au cas où.

Re: problème avec fonction send

Posté : mer. 12 oct. 2022 20:42
par Accessvision
J’ai déjà testé, j’avais même mis cinq secondes, mais ça ne marche jamais, est-ce que c’est un problème de ma fenêtre d’installation ?

Re: problème avec fonction send

Posté : mer. 12 oct. 2022 22:18
par jpascal
Pouvez-vous poster une capture d'écran d'AU3Info ?

Re: problème avec fonction send

Posté : jeu. 13 oct. 2022 08:38
par Accessvision
Bonjour,
Voici la capture d'écran.
Étant non voyant, je ne sais pas si elle est bien faite, dites moi si c'est bon.

Re: problème avec fonction send

Posté : jeu. 13 oct. 2022 09:42
par jpascal
La fenêtre Windows n'est pas "classique". C'est sûrement pourquoi la fonction ControlClick() ne fonctionne pas.

Essayons à nouveau avec Send().
Avec WinActivate($sTitle) la fenêtre est-elle bien activée ?

Si oui, vous pouvez tenter :
Send('{ALTDOWN}')
Send('o')
Send('{ALTUP}')

A tester également :
Send('{ALTDOWN}')
Send('n')
Send('{ALTUP}')
Send('{ALTDOWN}')
Send('e')
Send('{ALTUP}')

Re: problème avec fonction send

Posté : jeu. 13 oct. 2022 10:16
par Accessvision
Comme d'hab ça ne marche pas, je pense que ce n'est pas possible

Re: problème avec fonction send

Posté : jeu. 13 oct. 2022 10:21
par Accessvision
Mais n'y a-t-il pas un sytème de débogage pour dire ce qu'il ne va pas?
Je suis nouveau dans autoit et je ne connais pas ce qu'il propose.

Re: problème avec fonction send

Posté : jeu. 13 oct. 2022 11:17
par jpascal
Pouvez-vous répondre à cette question ?
Avec WinActivate($sTitle) la fenêtre est-elle bien activée ?