Cliquez sur un contrôle à l'aide d'AutoIt si une fenêtre est présente en arrière-plan ou à l'avant
Je veux cliquer sur un bouton qui est présent sur un formulaire d'un fichier EXE.
Ci-dessous mon code que j'ai essayé.
WinWaitActive("ABCD")
ControlClick("ABCD","Defer","[CLASS:Button; INSTANCE:2]")
Run("ClickDefer.exe")
- La première ligne,
WinWaitActive("ABCD")
attend jusqu'à ce qu'une fenêtre nommée ABCD est au point. - La deuxième ligne clique sur un bouton, Reporter
- La troisième ligne est le même fichier EXE pour la manipulation de même scénario s'il se produit.
Cela fonctionne correctement si le ABCD fenêtre est au point. Il ne fonctionne pas si elle n'est pas une priorité. Comment puis-je résoudre ce problème?
Vous devez vous connecter pour publier un commentaire.
Bien, vous devez utiliser une boucle infinie au lieu de courir le même script compilé, encore et encore. Et JonBecher est droit, mais l'absence de cas, où la fenêtre n'est jamais actif. Donc votre solution serait:
Cela signifie que votre clic permet de fermer la fenêtre et vous voulez attendre pour la même fenêtre s'affiche à nouveau quelque part dans l'avenir. D'autre votre intenional
Run(...)
appel n'aurait pas de sens.Avec
ControlClick(...)
vous n'avez pas besoin d'avoir votre fenêtre active ou même visible.À l'aide de
WinActivate
vous pouvez faire une fenêtre de venir dans le foyer.WinActivate("ABCD")
Cela va mettre le focus sur les "ABCD" de la fenêtre.
si vous l'envoi de la clé de contrôle, alors pas besoin d'attendre ou de se concentrer sur cette fenêtre. il va gérer... je suis en train d'écrire ce code pour Skype sso, peu importe où est la fenêtre... Il fonctionne si la fenêtre est réduite.