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 50 51 52
| Option Explicit
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 Function GetKeyState Lib "User32" (ByVal nVirtKey As Long) As Integer
Private Declare Function MapVirtualKey Lib "User32" Alias "MapVirtualKeyA" (ByVal wCode As Long, _
ByVal wMapType As Long) As Long
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