Séquence de touches par API

cs_patoche62 Messages postés 4 Date d'inscription mardi 1 février 2005 Statut Membre Dernière intervention 19 avril 2006 - 27 juil. 2005 à 18:11
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 28 juil. 2005 à 19:46
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

PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
27 juil. 2005 à 19:19
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
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 42
27 juil. 2005 à 20:55
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.
0
cs_patoche62 Messages postés 4 Date d'inscription mardi 1 février 2005 Statut Membre Dernière intervention 19 avril 2006
28 juil. 2005 à 19:25
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
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
28 juil. 2005 à 19:46
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
0