VisualFreeBasic控件_HotKey 热键

2026-1-21 / 0 评论 / 37 阅读

热键、快捷键,2种功能

热键使用方法

  1. 先向系统注册,要是系统中其它软件已经注册过相同的,那么会被我们抢注,假如我们注册后,其它软件再注册相同的,那么就被其它软件抢注。我们软件就失效。
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键)

  1. 按下热键,触发事件
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

评论一下?

OωO
取消