Simuler touche clavier

Utilisateur anonyme - Modifié le 18 nov. 2010 à 22:05
 Utilisateur anonyme - 18 nov. 2010 à 22:05
Hello,

Je cherche à simuler la pression d'une touche clavier.

J'ai déjà testé avec SendKeys, seulement SendKeys envoi telle touche dans telle fenêtre Windows, or ici je veux qu'il envoye comme une vrai impulsion clavier.

J'ai en fait un programme qui fait telle action quand on appuie par exemple sur F8, mais ce programme tourne en background donc impossible de dire avec un SendKeys qu'il doit envoyer l'impulsion f8 a telle fenêtre. Il faut donc un SendKeys qui envoi un F8 comme un clavier, et pas dans une fenêtre précise. Vous me suivez ?

Merci :-)

A++

26 réponses

raffika Messages postés 269 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 12 mars 2011
15 nov. 2010 à 20:02
keybd_event(&H77, 0, 0, 0)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
16 nov. 2010 à 10:21
commencez par utiliser une declaration d'API correcte...

ne mettez pas As Long sans reflechir...
l'API attend un entier sur 32 bits.

donc un Integer ou un Int32

pas un Long (64 bits par defaut)

faire, donc :

Declare Sub keybd_event Lib "user32" Alias "keybd_event" ( _
ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Integer, _
ByVal dwExtraInfo As Integer)

Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer

possible surement d'adapter:

www.vbfrance.com/codes/SENDKEYSEX-SIMULER-TOUCHE-DANS-FENETRE-PRECISE_41974.aspx
Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
juliendu44 Messages postés 6 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 17 novembre 2010
17 nov. 2010 à 21:27
C bizarre, moi qd j'utilise sendkey, sa l'envoie vers le controle actif de la forme active, exactement comme qd on tape sur le clavier juste avec le sendkey.send("a")'ici la touche a par exemple, et pas besoin de dire a quelle fenetre il doit l'envoyer
0
juliendu44 Messages postés 6 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 17 novembre 2010
17 nov. 2010 à 21:32
pardon, mon premier msg n'a pas été envoyé, je voulais juste dire que pour simuler l'appuie d'une touche, on peut utiliser sendkey.send("a")
la touche est as string
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
18 nov. 2010 à 09:12
comme tu le dit, ca envoie au controle actif de la fenetre active

du coup, on a pas de controle sur la cible : l'utilisateur ne doit pas manipuler ses fenetres, et on doit etre sur de la fenetre active a chaque instant, d'ou la dangerosité de SendKeys ...

Merci d'éviter le langage SMS

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
Bonsoir,

J'ai téléchargé un clavier visuel en vb.net qui envoi bien mes impulsions sans soucis à n'importe quelle appli SAUF celle dont j'ai besoin.

Après avoir échoué avec tous les essais ci dessus et plusieur claviers visuels téléchargés, jai l'impression que mon programme ne reçoit que les réels impulsions clavier. Ils ne veut rien entendre des sendkeys, keybd_event, ...

Le seul clavier virtuel qui réussi a faire ce que je recherche est le clavier visuel (on screen keyboard) de Windows. Que fait il de différent ? Est il reconnu comme un clavier hardware ?

Une idée ?

Merci,

Fab

A++
0
Rejoignez-nous