Simuler appui long sur une touche

juda13 Messages postés 8 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 29 mars 2004 - 29 mars 2004 à 00:04
juda13 Messages postés 8 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 29 mars 2004 - 29 mars 2004 à 15:22
bonjour
je cherche a faire un programme qui me permettent de simuler l'appui sur une touche pendant un temps precis, par exemple, l'appui sur la touche A, pendant 5s, me donnerait 15 A sous notepad ..., or je n'arrive pas a reproduire cet acte or que d'apuyer effectivement pendant 5s sur la touche A ...

est il possible de simuler l'appui sur une touche en continue ?
de meme pour la souris, est ce possible afin de realiser des selectionner, deplacer ... ?

merci de m'aiguillez, je trouve aucune info !!

4 réponses

radcur Messages postés 282 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 15 août 2012 2
29 mars 2004 à 02:25
salut,

la quantité de "A" (exemple) qui s'affichera dans un délai X dépend des parametres du clavier dans Windows.

Par contre, la commande Sendkey{"A"} pourrait t'aider avec un objet Timer ajuster sur un interval assez serré devrait être en mesure de simuler l'enfonccement de la touche désiré
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
29 mars 2004 à 07:13
Il vaut mieux passerpar les API pour cela : utilise la fonction keybd_event pour déclencher l'appuie sur A puis 5s plus tard, réappelle cette fonction pour déclencher le relachement de la touche.

Télécharger ProgOtoP API Viewer (voir ma signature) pour voir des exemples d'utilisation de cette fonction.

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
0
juda13 Messages postés 8 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 29 mars 2004
29 mars 2004 à 13:29
voici mon code, il est censer ecrire une multitude de zero dans le textebox du programme .... il en ecrit 1 seul !!

Private Declare Sub keybd_event Lib "user32" _
         (ByVal bVk As Byte, _
            ByVal bScan As Byte, _
            ByVal dwflags As Long, ByVal dwExtraInfo As Long)
            
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Command1_Click()
Text1.SetFocus
keybd_event &H60, 0, 0, 0
End Sub

Private Sub Command2_Click()
keybd_event &H60, 0, 2, 0
End Sub



c quoi qui va pas, siouplez aidez moi ?!
0
juda13 Messages postés 8 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 29 mars 2004
29 mars 2004 à 15:22
g essayer avec setkeyboardstat vu que keybd_event ne fonctionne pas comme je le voudrait (l'apui sur la touche maj fonctionne, mais l'apui sur la touche A ne fait pas des A repeter dans la textbox)

voici le code :

Const VK_CAPITAL = &H14 'CapsLock
Const VK_NUMLOCK = &H90 'NumLock
Const VK_SCROLL = &H91 'ScrollLock

Private Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type

Private Declare Function GetKeyboardState Lib "user32" ( _
kbArray As KeyboardBytes) As Long

Private Declare Function SetKeyboardState Lib "user32" ( _
kbArray As KeyboardBytes) As Long

Dim kbArray As KeyboardBytes, kbOld As KeyboardBytes

Private Sub Active(vkKey As Long, Actif As Byte)

GetKeyboardState kbArray

kbArray.kbByte(vkKey) = Actif

SetKeyboardState kbArray

End Sub

Private Sub Form_Load()

GetKeyboardState kbOld

End Sub

Private Sub Form_Unload(Cancel As Integer)

SetKeyboardState kbOld

End Sub

Private Sub Command1_Click()
Text1.SetFocus
Active 65, 1
End Sub

Private Sub Command2_Click()
Active 65, 0
End Sub


meme resultat qu'avec keybd_event ! sauf que la aucun caractere ne s'affichent, pourtant sa fonctionne avec maj ...
0
Rejoignez-nous