1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| Option Explicit
' API Pour la gestion des touches du clavier:
Private Declare PtrSafe Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As LongPtr)
Private Declare PtrSafe Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Private Declare PtrSafe Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long
' Constantes pour la gestion des touches du clavier:
Private Const VK_NUMLOCK = &H90
Private Const VK_CAPITAL = &H14
Private Const KEYEVENTF_EXTENDEDKEY = &H1
Private Const KEYEVENTF_KEYUP = &H2
'------------------------------------------------------------------------------------------------
Private Sub SetKeyState(ByVal Key As Long, ByVal State As Boolean)
'------------------------------------------------------------------------------------------------
keybd_event Key, MapVirtualKey(Key, 0), KEYEVENTF_EXTENDEDKEY Or 0, 0
keybd_event Key, MapVirtualKey(Key, 0), KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
If Key = 20 And State = False Then ' cas particulier pour VK_CAPITAL
keybd_event 16, 0, 0, 0
keybd_event 16, 0, 2, 0
End If
End Sub
'------------------------------------------------------------------------------------------------
Public Sub SetNumLock(Etat As Boolean)
'------------------------------------------------------------------------------------------------
' Etat = True : Active le clavier numérirque.
' Etat = False : Désactive le clavier numérique.
'------------------------------------------------------------------------------------------------
While GetKeyState(VK_NUMLOCK) = 1 + Etat
SetKeyState VK_NUMLOCK, Etat
DoEvents
Wend
End Sub
'------------------------------------------------------------------------------------------------
Public Sub SetCapital(Etat As Boolean)
'------------------------------------------------------------------------------------------------
' Etat = True : Active le mode majuscule.
' Etat = False : Désactive le mode majuscule.
'------------------------------------------------------------------------------------------------
While GetKeyState(VK_CAPITAL) = 1 + Etat
SetKeyState VK_CAPITAL, Etat
DoEvents
Wend
End Sub
'------------------------------------------------------------------------------------------------
'------------------------------------------------------------------------------------------------ |
Partager