热键、快捷键,2种功能

热键使用方法
- 先向系统注册,要是系统中其它软件已经注册过相同的,那么会被我们抢注,假如我们注册后,其它软件再注册相同的,那么就被其它软件抢注。我们软件就失效。
HotKey1.AddHotKey(虚拟键码,组合键 )
虚拟键码: https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
组合键: MOD_ALT(ALT键) MOD_CONTROL(CTRL键) MOD_SHIFT(SHIFT键) MOD_WIN(WINDOWS键)
- 按下热键,触发事件
Sub Form1_HotKey1_KeyboardState(hWndForm As hWnd, vKey As Long ,fsModifiers As Long)
If (fsModifiers And MOD_ALT)=MOD_ALT Then Print "有ALT键按下"
If (fsModifiers And 16) = 16 Then Print "键被按下" Else Print "键被放开"
Select Case vKey
Case VK_LBUTTON ,VK_RBUTTON '鼠标
Case &H30 To &H39 '0 -- 9
Case &H41 To &H5A 'A -- Z
Case &H60 To &H69 '数字键盘 0 -- 9
Case VK_F1 To VK_F24 'F1 -- F24 键
End Select
End Sub
快捷键使用方法
不需要注册,不需要代码,就选中事件即可,就会有按钮事件,假如其它软件也使用相同的,大家都会被触发。
这个事件,只要键盘的任意键被按下,都触发本事件,然后自己判断按下了什么键。
Sub Form1_HotKey1_KeyboardState(hWndForm As hWnd, vKey As Long ,fsModifiers As Long)
If (fsModifiers And MOD_ALT)=MOD_ALT Then Print "有ALT键按下"
If (fsModifiers And 16) = 16 Then Print "键被按下" Else Print "键被放开"
Select Case vKey
Case VK_LBUTTON ,VK_RBUTTON '鼠标
Case &H30 To &H39 '0 -- 9
Case &H41 To &H5A 'A -- Z
Case &H60 To &H69 '数字键盘 0 -- 9
Case VK_F1 To VK_F24 'F1 -- F24 键
End Select
End Sub
评论一下?