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
| Enum FsModifiers
None = 0
Alt = 1
Control = 2
Shift = 4
Windows = 8
Alt_Ctrl = 3
Alt_Shift = 5
Alt_Windows = 9
Ctrl_Shift = 6
Ctrl_Windows = 10
Shift_Windows = 12
No_Repeat = 16384
End Enum
Declare Auto Function RegisterHotKey Lib "user32.dll" (ByVal handle As IntPtr, ByVal id As Integer, ByVal fsModifier As FsModifiers, ByVal vk As Keys) As Boolean
Declare Auto Function UnregisterHotKey Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal id As Integer) As Integer
Private Const HOTKEY_ID1 As Integer = 571584
Private Const HOTKEY_ID2 As Integer = 752452
Private Const WM_HOTKEY As Integer = 786
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Select Case m.Msg 'on va tester le message reçu à chaque appel de cette fonction
Case WM_HOTKEY 'si il s'agit du message WM_HOTKEY (si l'utilisateur a appuyé sur CTRL + ALT + B)
If m.WParam = HOTKEY_ID1 Then 'on cherche quelle hotkey a déclenché l'évènement
MsgBox("Ctrl + alt + b")
ElseIf m.WParam = HOTKEY_ID2 Then
MsgBox("Ctrl + alt + shift + win + d")
End If
End Select
MyBase.WndProc(m)
End Sub
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
UnregisterHotKey(Me.Handle, HOTKEY_ID1)
UnregisterHotKey(Me.Handle, HOTKEY_ID2)
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
RegisterHotKey(Me.Handle, HOTKEY_ID1, FsModifiers.Alt_Ctrl, Keys.B)
RegisterHotKey(Me.Handle, HOTKEY_ID2, FsModifiers.Ctrl_Windows + FsModifiers.Alt_Shift, Keys.D)
End Sub |
Partager