FileFlow/Global_Indexer/ClassHotkey.vb
2015-07-07 13:04:46 +02:00

51 lines
2.0 KiB
VB.net
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Public Class ClassHotkey
#Region "Declarations - WinAPI, Hotkey constant and Modifier Enum"
''' <summary>
''' Declaration of winAPI function wrappers. The winAPI functions are used to register / unregister a hotkey
''' </summary>
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