J'ai été confronté à un problème : J'utilise KeyUp dans un de mes programmes
jusque là, pas de problème...
je souhaitais récupérer le caractère correspondant...
j'utilisait Chr$ , sachant que ce n'est pas la voie à suivre... mais ca fonctionnais pas trop mal.
J'aurais sans doute pu ici utiliser KeyPress, qui m'aurait de suite renvoyé un caractère, mais KeyPress n'est pas déclenché pour toutes les touches...
Après quelques minutes de recherche sur MSDN, je suis tombé sur :
http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputfunctions/toascii.asp
Source / Exemple :
Private Declare Function ToAscii Lib "user32.dll" (ByVal uVirtKey As Long, ByVal uScanCode As Long, ByRef lpbKeyState As Byte, ByRef lpwTransKey As Long, ByVal fuState As Long) As Long
Private Declare Function GetKeyboardState Lib "user32.dll" (ByRef pbKeyState As Byte) As Long
Private Function GetCharFromKey(ByVal KeyCode As Integer) As String
Dim KeyBoardState(255) As Byte
Dim Out As Long
If GetKeyboardState(KeyBoardState(0)) <> 0 Then
If ToAscii(KeyCode, 0, KeyBoardState(0), Out, 0) <> 0 Then
If Out <= 255 Then
GetCharFromKey = Chr$(Out)
Else
GetCharFromKey = Left$(StrConv(ChrW$(Out), vbUnicode), 1)
End If
End If
End If
End Function
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.