Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Public Class Form1
- 'enumération définissant l'état des touches CTRL, SHIFT, ALT et WIN
- Enum FsModifiers
- None = 0 'aucune touche
- 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 'indisponible sous Vista/XP/2000
- End Enum
- 'Déclaration des API
- 'handle = handle de la fenêtre qui gérera le raccourci
- 'id = identifiant qu'on se choisit pour notre hotkey
- 'fsModifier : un type FsModifiers (enum)
- 'vk : le code clé correspondant à la touche
- 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
- 'handle : handle de l'application qui gère le raccourci
- 'id : l'identifiant du raccourci
- Declare Auto Function UnregisterHotKey Lib "user32.dll" (ByVal handle As IntPtr, ByVal id As Integer) As Integer
- 'on définit deux raccourcis :
- Private Const HOTKEY_ID1 As Integer = 571584 'numéros aléatoires
- Private Const HOTKEY_ID2 As Integer = 752452
- 'la constante WM_HOTKEY fournir par Microsoft
- Private Const WM_HOTKEY As Integer = 786
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- 'dès le lancement on définit nos deux hotkeys : ALT CTRL B et CTRL WIN ALT SHIFT D
- 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
- 'WndProc nous permettra de traiter les messages windows
- 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
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement