[R] Simuler l'appui sur deux touches du clavier
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Simuler l'appui sur deux touches du clavier
Bonjour, voilà, je souhaiterais avec un script AutoIt V3, simuler l'appui sur les deux touches suivantes : "Insert et F4" simultanément.
Je n'arrive pas à le faire !
J'ai essayé ceci :
Send ("{Insert}+{F4}") et plein d'autres combinaisons, ça ne donne rien.
Quelqu'un pourrais t-il m'aider?
Je vous remercie d'avance.
Je n'arrive pas à le faire !
J'ai essayé ceci :
Send ("{Insert}+{F4}") et plein d'autres combinaisons, ça ne donne rien.
Quelqu'un pourrais t-il m'aider?
Je vous remercie d'avance.
Modifié en dernier par abdel792 le dim. 13 sept. 2009 21:55, modifié 4 fois.
- Iste
- Niveau 11

- Messages : 1870
- Enregistré le : jeu. 04 déc. 2008 14:21
- Localisation : 76
- Status : Hors ligne
Re: [..] Simuler l'appui sur deux touches du clavier
Salutations,
Je n'ai fais que de bref teste, mais ca a l'air de fonctionner 
Donc, pour votre exemple,Doc autoit a écrit :To hold a key down (generally only useful for games)
Send("{a down}") ;Holds the A key down
Send("{a up}") ;Releases the A key
Code : Tout sélectionner
Send("{INSERT down}")
Send("{F4}")
Send("{INSERT up}")Signez ici
Re: Simuler l'appui sur deux touches du clavier
Je vous remercie pour votre réponse.
Cependant, le problème persiste.
Lorsque je lance le raccourci "Insert F4" manuellement, celà m'ouvre une boîte de dialogue.
Lorsque j'exécute le script, cette boîte de dialogue ne veut pas s'ouvrir.
J'ai même ajouté une fonction WinWaitActive avec en paramètre, le titre de la fenêtre de cette boîte de dialogue, ça donne rien.
Je possède AutoIt V3.2.12.1.
Cependant, le problème persiste.
Lorsque je lance le raccourci "Insert F4" manuellement, celà m'ouvre une boîte de dialogue.
Lorsque j'exécute le script, cette boîte de dialogue ne veut pas s'ouvrir.
J'ai même ajouté une fonction WinWaitActive avec en paramètre, le titre de la fenêtre de cette boîte de dialogue, ça donne rien.
Je possède AutoIt V3.2.12.1.
- Iste
- Niveau 11

- Messages : 1870
- Enregistré le : jeu. 04 déc. 2008 14:21
- Localisation : 76
- Status : Hors ligne
Re: [..] Simuler l'appui sur deux touches du clavier
Hum étrange,
Mais pas facile, d'autant que je ne peux pas tester ^^'
chez moi, ce code pour un 'couper' marche tres bienMais je n'ai pas d'application qui demande de raccourcit insert+F4 :s
Quel est ce logiciel ? (qu'on puisse regarder de plus pres)
Mais pas facile, d'autant que je ne peux pas tester ^^'
chez moi, ce code pour un 'couper' marche tres bien
Code : Tout sélectionner
Send("{RCTRL down}")
Send("x")
Send("{RCTRL up}")Quel est ce logiciel ? (qu'on puisse regarder de plus pres)
Signez ici
Re: Simuler l'appui sur deux touches du clavier
Bonjour,
En fait, ce logiciel s'appelle JAWS For Windows, c'est un logiciel de revue d'écran pour personnes déficientes visuelles.
Il permet de lire à haute voix ce qui se passe à l'écran pour des personnes mal ou non-voyantes.
Dans ce logiciel, le raccourci "Insert F4" ouvre la boîte de dialogue de sortie du logiciel, on a alors une confirmation à valider.
C'est cette boîte de dialogue que je n'arrive pas à faire afficher avec le script AutoIt V3, alors que manuellement, ça fonctionne très bien.
En fait, ce logiciel s'appelle JAWS For Windows, c'est un logiciel de revue d'écran pour personnes déficientes visuelles.
Il permet de lire à haute voix ce qui se passe à l'écran pour des personnes mal ou non-voyantes.
Dans ce logiciel, le raccourci "Insert F4" ouvre la boîte de dialogue de sortie du logiciel, on a alors une confirmation à valider.
C'est cette boîte de dialogue que je n'arrive pas à faire afficher avec le script AutoIt V3, alors que manuellement, ça fonctionne très bien.
Re: [..] Simuler l'appui sur deux touches du clavier
Essayez avec un ControlSend sur le Handle de la fenêtre.
Re: [..] Simuler l'appui sur deux touches du clavier
Bonjour, je vous remercie pour votre aide.
Cependant, je n'arrive pas à faire un ControlSend sur une fenêtre qui ne s'est pas ouverte.
En fait, le problème c'est que la fenêtre de confirmation s'ouvre bien lorsque j'exécute le raccourci "Insert F4" manuellement, mais je n'arrive pas à la faire afficher avec un script Autoit.
Cependant, je n'arrive pas à faire un ControlSend sur une fenêtre qui ne s'est pas ouverte.
En fait, le problème c'est que la fenêtre de confirmation s'ouvre bien lorsque j'exécute le raccourci "Insert F4" manuellement, mais je n'arrive pas à la faire afficher avec un script Autoit.
Re: [..] Simuler l'appui sur deux touches du clavier
Désolé de mon message peu précis : Je parlais de l'handle de votre programme avant que la fenetre s'affiche, le programme qui vous permet grace à Insert+F4 d'afficher la fenetre qui vous interesse.
Si ControlSend ne marche pas, n'y a t'il pas un moyen de lancer cette fenetre autrement que par le raccourci? Par exemple, dans le Menu tout en haut, qu'on pourrait atteindre avec un ControlClick.
Si ControlSend ne marche pas, n'y a t'il pas un moyen de lancer cette fenetre autrement que par le raccourci? Par exemple, dans le Menu tout en haut, qu'on pourrait atteindre avec un ControlClick.
Re: [..] Simuler l'appui sur deux touches du clavier
En fait, ce programme s'exécute en tâche de fond, assistant ainsi l'utilisateur déficient visuel dans pratiquement toutes les applications et fenêtres ouvertes.
Il affiche une icône dans la zone de notification de Windows.
Si une fonction spécifique à Autoit V3 pourrait permettre d'atteindre cette zone de notification et effectuer un click droit sur l'icône de ce programme, la commande quitter qui s'exécute lorsque nous faison "Insert F4" serait accessible.
Certes, le chemin pour y accéder serait plus long, mais si on a pas le choix, autant essayer !
Existerait t-il une commande permettant d'atteindre l'icône d'un programme donné dans la zone de notification de Windows?
Il affiche une icône dans la zone de notification de Windows.
Si une fonction spécifique à Autoit V3 pourrait permettre d'atteindre cette zone de notification et effectuer un click droit sur l'icône de ce programme, la commande quitter qui s'exécute lorsque nous faison "Insert F4" serait accessible.
Certes, le chemin pour y accéder serait plus long, mais si on a pas le choix, autant essayer !
Existerait t-il une commande permettant d'atteindre l'icône d'un programme donné dans la zone de notification de Windows?
- orax
- Modérateur

- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: [..] Simuler l'appui sur deux touches du clavier
J'ai essayé d'installer la version démo de JAWS pour tester, mais l'installation bloque vers les 5%...
Sinon, à tout hasard, est-ce que ce code ouvrirait la fenêtre ?
Sinon, à tout hasard, est-ce que ce code ouvrirait la fenêtre ?
Code : Tout sélectionner
Send("{INSERT down}")
Send("{F4 down}")
Sleep(5000)
Send("{F4 up}")
Sleep(1000)
Send("{INSERT up}")De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Re: [..] Simuler l'appui sur deux touches du clavier
Bonjour, je viens d'essayer le code, ça donne toujours rien.
Je vous remercie de vous être penché sur ce problème.
Je vous remercie de vous être penché sur ce problème.
- orax
- Modérateur

- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: [..] Simuler l'appui sur deux touches du clavier
Si j'ai bien compris, le raccourci sert à fermer le programme, donc éventuellement vous pourriez le fermer de cette façon (il ne sera pas fermé brutalement) :Mais il faut avoir le handle. J'ai testé sur notepad, ça à l'air de marcher. 
Code : Tout sélectionner
#include <SendMessage.au3>
Global Const $WM_CLOSE = 0x0010
_SendMessage($handle, $WM_CLOSE)De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Re: [..] Simuler l'appui sur deux touches du clavier
OK, je vous remercie.
Vous dites qu'il faudrait avoir le handle.
Serait t-il possible de pouvoir l'obtenir, je veux dire le handle, avec Autoit, où y aurait t-il un autre moyen?
De plus, l'icône de cette application est réduite à un bouton dans la barre des tâches système car elle s'exécute comme je vous l'ai expliqué, en tâche de fond.
Si j'atteins ce bouton par l'intermédiaire de son handle, est-ce que j'obtiens le masquage de l'icône de l'application dans la barre des tâches système uniquement, ou bien celà désactive t-il complètement l'application ciblée?
Vous dites qu'il faudrait avoir le handle.
Serait t-il possible de pouvoir l'obtenir, je veux dire le handle, avec Autoit, où y aurait t-il un autre moyen?
De plus, l'icône de cette application est réduite à un bouton dans la barre des tâches système car elle s'exécute comme je vous l'ai expliqué, en tâche de fond.
Si j'atteins ce bouton par l'intermédiaire de son handle, est-ce que j'obtiens le masquage de l'icône de l'application dans la barre des tâches système uniquement, ou bien celà désactive t-il complètement l'application ciblée?
- orax
- Modérateur

- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: [..] Simuler l'appui sur deux touches du clavier
Je ne sais pas si ça marchera dans votre cas.
c'est donc WinGetHandle récupérer le handle.
J'ai fait un test avec Orbit et ça me ferme bien le programme (même quand la fenêtre est icônisée) si je n'ai pas coché "réduire dans la barre des tâches" dans les options.
Par contre, je crois qu'il faut que dans le programme que vous avez, qu'il y ait au moins une fenêtre pour que ça marche, puisque visiblement SendMessage est censé envoyer le "message" WM_CLOSE à une fenêtre. Il faudrait mettre WinGetHandle("LE TITRE DE LA FENETRE").
Mais de toutes façons, je crois qu'il y a peu de chances que ça marche...
c'est donc WinGetHandle récupérer le handle.
J'ai fait un test avec Orbit et ça me ferme bien le programme (même quand la fenêtre est icônisée) si je n'ai pas coché "réduire dans la barre des tâches" dans les options.
Code : Tout sélectionner
#Include <WinAPI.au3>
#include <SendMessage.au3>
Global Const $WM_CLOSE = 0x0010
$handle=WinGetHandle("Orbit") ; récupère le handle de la fenêtre de Orbit d'après son titre
_SendMessage($handle,$WM_CLOSE)Mais de toutes façons, je crois qu'il y a peu de chances que ça marche...
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Re: Simuler l'appui sur deux touches du clavier
Bonjour, je viens d'essayer en décochant la case "Réduire dans la barre des tâches", dans la configuration de JAWS et le code suivant m'ouvre bien la boîte de dialogue de confirmation de fermeture du programme.
Merci pour cette solution qui répond quand même en quelque sorte à mon attente.
Je vais baliser la discussion comme résolue.
Code : Tout sélectionner
#include <SendMessage.au3>
Global Const $WM_CLOSE = 0x0010
$handle=WinGetHandle("JAWS", "")
_SendMessage($handle, $WM_CLOSE)
Je vais baliser la discussion comme résolue.

