Advertisement
Guest User

Untitled

a guest
May 14th, 2011
730
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 2.63 KB | None | 0 0
  1. Public Class Form1
  2.     'enumération définissant l'état des touches CTRL, SHIFT, ALT et WIN
  3.     Enum FsModifiers
  4.         None = 0 'aucune touche
  5.         Alt = 1
  6.         Control = 2
  7.         Shift = 4
  8.         Windows = 8
  9.         Alt_Ctrl = 3
  10.         Alt_Shift = 5
  11.         Alt_Windows = 9
  12.         Ctrl_Shift = 6
  13.         Ctrl_Windows = 10
  14.         Shift_Windows = 12
  15.         No_Repeat = 16384 'indisponible sous Vista/XP/2000
  16.     End Enum
  17.     'Déclaration des API
  18.     'handle = handle de la fenêtre qui gérera le raccourci
  19.     'id = identifiant qu'on se choisit pour notre hotkey
  20.     'fsModifier : un type FsModifiers (enum)
  21.     'vk : le code clé correspondant à la touche
  22.     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
  23.  
  24.     'handle : handle de l'application qui gère le raccourci
  25.     'id : l'identifiant du raccourci
  26.     Declare Auto Function UnregisterHotKey Lib "user32.dll" (ByVal handle As IntPtr, ByVal id As Integer) As Integer
  27.  
  28.     'on définit deux raccourcis :
  29.     Private Const HOTKEY_ID1 As Integer = 571584 'numéros aléatoires
  30.     Private Const HOTKEY_ID2 As Integer = 752452
  31.  
  32.     'la constante WM_HOTKEY fournir par Microsoft
  33.     Private Const WM_HOTKEY As Integer = 786
  34.  
  35.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  36.         'dès le lancement on définit nos deux hotkeys : ALT CTRL B et CTRL WIN ALT SHIFT D
  37.         RegisterHotKey(Me.Handle, HOTKEY_ID1, FsModifiers.Alt_Ctrl, Keys.B)
  38.         RegisterHotKey(Me.Handle, HOTKEY_ID2, FsModifiers.Ctrl_Windows + FsModifiers.Alt_Shift, Keys.D)
  39.     End Sub
  40.  
  41.     'WndProc nous permettra de traiter les messages windows
  42.     Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
  43.         Select Case m.Msg 'on va tester le message reçu à chaque appel de cette fonction
  44.             Case WM_HOTKEY 'si il s'agit du message WM_HOTKEY (si l'utilisateur a appuyé sur CTRL + ALT + B)
  45.                 If m.WParam = HOTKEY_ID1 Then 'on cherche quelle hotkey a déclenché l'évènement
  46.                     MsgBox("Ctrl + alt + b")
  47.                 ElseIf m.WParam = HOTKEY_ID2 Then
  48.                     MsgBox("Ctrl + alt + shift + win + d")
  49.                 End If
  50.         End Select
  51.         MyBase.WndProc(m)
  52.     End Sub
  53.  
  54.     Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
  55.         UnregisterHotKey(Me.Handle, HOTKEY_ID1)
  56.         UnregisterHotKey(Me.Handle, HOTKEY_ID2)
  57.     End Sub
  58.  
  59. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement