Séquence de touches par API

Signaler
Messages postés
4
Date d'inscription
mardi 1 février 2005
Statut
Membre
Dernière intervention
19 avril 2006
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Bonjour à tous,



Existe-t'il une API qui permet d'envoyer une séquence de touches à une application

qui n'est pas la fenêtre active windows et donc qui n'a pas le focus ?



Merci d'avance,



Patoche62

4 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
The SetWindowsHookEx function installs an application-defined hook procedure into a hook chain. You would install a hook procedure to monitor the system for certain types of events. These events are associated either with a specific thread or with all threads in the system.

Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long

je m'avance peut-être, mais le principe est de connaître le hWnd de l'appli en question, et de lui insérer les MSG voulu....

pour plus d'infos, rappoche toi des sources concernant le Hook ou le SubClassing

PCPT
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
41
Le hook clavier ( SetWindowsHookEx etc.. ) permet de recevoir les événements du clavier et éventuellement de les modifier ou de les supprimer mais pas d'envoyer des messages, pour cela il faut utiliser SendMessage ou PostMessage.
Messages postés
4
Date d'inscription
mardi 1 février 2005
Statut
Membre
Dernière intervention
19 avril 2006

Bonsoir à tous,

J'ai suivi ton conseil, PCPT, je suis allé fouiner sur le net pour en savoir plus sur le Hook. Mais bon, ou alors j'ai rien compris, ou alors je me suis mal exprimé. Quel est l'intérêt d'intercepter un évènement clavier ou souris que je génère moi-même avec mon appli VB ?
Ce que je veux faire : avoir une appli X qui tourne en fenêtre maximisée et qui a le focus et une appli VB en arrière plan qui envoie une séquence de touches à une appli Y qui tourne aussi en arrière plan.
Bien sûr, la solution de facilité c'est de redonner le focus à l'appli Y, d'envoyer les touches et de reminimiser l'appli Y, mais c'est pas très esthétique. Je pense qu'il doit être possible de faire plus élégant.

Merci de votre aide,

Patoche62
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
3 applis?
X a le focus en maximiz

Y & Z en minim, sans focus, et Y envoie à Z ou Y à X....
si Y à X, tu peux utiliser un simple SendKey, mais çà suppose qu'il n'y a vraiment que X qui ait le focus (pas d'explorateur, ou autre)

sinon, Lutinoire l'a dit, le Hook n'est pas forcément approprié (çà te rassure?)
Get et PostMessage me sont étrangers, peut-être une piste à suivre...

PCPT