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 ?
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 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
juliendu44
Messages postés6Date d'inscriptionmercredi 23 juin 2010StatutMembreDernière intervention17 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
juliendu44
Messages postés6Date d'inscriptionmercredi 23 juin 2010StatutMembreDernière intervention17 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 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 ...
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 ?