Keypress

Résolu
ploki122 Messages postés 48 Date d'inscription mercredi 21 septembre 2005 Statut Membre Dernière intervention 20 décembre 2005 - 20 déc. 2005 à 20:53
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 20 déc. 2005 à 23:50
Bonjour,

j'ai fait un programme qui utilise les keypress etlorsque je clique sur une lettre les autres ne marchent pas. Je voulais savoir si c'était possible d'utiliser 2 keypress à la fois.

P.S. Le plus simple sera le mieux (Je considère les API comme compliqué)

Merci.

4 réponses

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
20 déc. 2005 à 22:11
Normal !! Keypress se base sur le bufer clavier mais il ne fait que prendre la prochaine touche à traiter dans le clavier ... Donc un appui sur K occulte un appui sur A !! Alors même si tu trouves cela compliqué, il va falloir te pencher sur les API pour résoudre ton pb.
Par contre, je ne suis pas un spécialiste de ce genre d'API, alors je ne peux pas te donner un nom de fonction pour ton pb. Mais d'autres ici vont te trouver cela ... Je leur laisse la main

CR
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
20 déc. 2005 à 23:50
salut,

une Form1, un Module1



renseigne-toi sur la MSDN pour plus d'infos...



exemple tiré du Guid-API




' -----

' Form1

' -----

'

Private Sub Form_Load()

hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf KeyboardProc, App.hInstance, App.ThreadID)

End Sub

'

'

Private Sub Form_Unload(Cancel As Integer)

UnhookWindowsHookEx hHook

End Sub

'

'

'

Public Sub KeyHooked(sKey As String)

Debug.Print sKey

End Sub













' -------

' Module1

' -------

'

Declare Function CallNextHookEx Lib "user32" _

(ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, _

lParam As Any) As Long

'

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

'

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

'

Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long

'

Public Const WH_KEYBOARD = 2

Public hHook As Long

'

'

Public Function KeyboardProc(ByVal idHook As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

If idHook >= 0 Then Call Form1.KeyHooked( Chr (wParam))

' call the next hook

KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)

End Function




<small> Coloration
syntaxique automatique [AFCK]</small>



PS : ne pas utiliser le bouton Stop de l'IDE



++

PCPT [AFCK]
3
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
20 déc. 2005 à 21:42
Qu'est-ce que tu entends par "orsque je clique sur une lettre les autres ne marchent pas" ???
0
ploki122 Messages postés 48 Date d'inscription mercredi 21 septembre 2005 Statut Membre Dernière intervention 20 décembre 2005
20 déc. 2005 à 22:05
Désolé si ce n'étais pas clair,
Bon! mon programme c'est un pong qui marche avec les keypress. Donc je garde appuyer "A" pour faire monter la 1e palette et si je pèse sur "K", pour faire monter ma 2e palette, la 1e arrèt de monter.
Donc, un seul keypress est pris en compte.
0
Rejoignez-nous