Public Class ClassHotkey #Region "Declarations - WinAPI, Hotkey constant and Modifier Enum" ''' ''' Declaration of winAPI function wrappers. The winAPI functions are used to register / unregister a hotkey ''' Public Declare Function RegisterHotKey Lib "user32" _ (ByVal hwnd As IntPtr, ByVal id As Integer, ByVal fsModifiers As Integer, ByVal vk As Integer) As Integer Public Declare Function UnregisterHotKey Lib "user32" (ByVal hwnd As IntPtr, ByVal id As Integer) As Integer Public Const WM_HOTKEY As Integer = &H312 Enum KeyModifier Alt = &H1 Control = &H2 Shift = &H4 Winkey = &H8 End Enum 'This enum is just to make it easier to call the registerHotKey function: The modifier integer codes are replaced by a friendly "Alt","Shift" etc. #End Region #Region "Hotkey registration, unregistration and handling" Public Shared Sub registerHotkey(ByRef sourceForm As Form, ByVal hotkeyID As Integer, ByVal triggerKey As String, ByVal modifier As KeyModifier) RegisterHotKey(sourceForm.Handle, hotkeyID, modifier, Asc(triggerKey.ToUpper)) End Sub Public Shared Sub unregisterHotkeys(ByRef sourceForm As Form) 'Try UnregisterHotKey(sourceForm.Handle, 1) 'Remember to call unregisterHotkeys() when closing your application. UnregisterHotKey(sourceForm.Handle, 2) UnregisterHotKey(sourceForm.Handle, 3) 'Catch ex As Exception ' ClassLogger.Add("Unerwarteter Fehler in Unregister Hotkeys´: " & ex.Message, True) 'End Try End Sub 'Public Shared Sub handleHotKeyEvent(ByVal hotkeyID As IntPtr) ' Select Case hotkeyID ' Case 1 ' MsgBox("The hotkey ALT+W (ID: 1) was pressed") ' Case 2 ' MsgBox("The hotkey ALT+E (ID: 2) was pressed") ' Case 3 ' MsgBox("The hotkey ALT+R (ID: 3) was pressed") ' End Select 'End Sub #End Region End Class