2009-04-30 9 views
1

Je sais comment simuler des événements de souris et de clavier, mais ils agissent comme si l'utilisateur les faisait, donc ils affectent la fenêtre qui est active. Ce dont j'ai besoin, c'est de simuler une de ces entrées, mais dans une fenêtre qui n'est pas active. Je ne dis pas qu'il est minimisé, imaginez par exemple, vous avez msPaint, et le bloc-notes. Le bloc-notes est devant la peinture. Et vous voulez simuler des clics de souris dans certaines coordonnées de la fenêtre de peinture, mais sans le rendre actif, permettant à l'utilisateur de continuer à utiliser le bloc-notes qui est en face de la peinture.Simulation Déplacement de la souris/click/keyPress dans une application qui n'est pas active

Est-ce possible? Merci!

+0

Quels outils/langues utilisez-vous? –

Répondre

3

Vous pourriez faire ce qui suit:

1) obtenir le HWND de la fenêtre à l'intérieur de laquelle vous souhaitez simuler des événements. Pour ce faire, vous pouvez utiliser la fonction FindWindow, qui prend deux paramètres, l'un étant le nom de classe de la fenêtre (vous pouvez utiliser NULL) et l'autre le nom de la fenêtre (voir la documentation MSDN pour plus de détails);

2) envoyer un message à la fenêtre souhaitée en utilisant la fonction SendMessage. Les paramètres sont: le précédent handle de fenêtre obtenu (HWND), le message (qui peut être par exemple WM_KEYDOWN, ou WM_MOUSEMOVE, WM_LBUTTONDOWN etc.), le WPARAM du message (qui dans le cas de WM_KEYDOWN est le code de clé virtuelle de la clé) et enfin le LPARAM du message (qui dans le cas de WM_KEYDOWN est assez complexe et vous devriez vérifier MSDN pour plus de détails).

À mon avis, c'est suffisant pour ce que vous avez l'intention de faire.

+0

Le PO a-t-il eu du succès avec cette approche? J'ai lu mon chemin à travers certains threads lourdes qui prétendent que la méthode 2) ne fonctionne pas. –

0

Eh bien, si vous connaissiez JAVA, vous pourriez utiliser la classe robots.

Cette classe est utilisée pour générer des événements d'entrée du système natif aux fins de l'automatisation des tests, des démonstrations d'auto-course, et d'autres applications où le contrôle de la souris et le clavier est nécessaire

Java robots class

Peut-être qu'il y a quelque chose de similaire dans .net?

+0

Vous ne savez pas comment utiliser la classe Robots pour envoyer des touches à une fenêtre inactive –

Questions connexes