使用Windows修饰键设置全局热键

3
我想在VB6中设置一个全局热键,监听键盘快捷方式Win + O
我找到了很多混乱的例子,但没有涉及Windows键的内容。
设置热键的理想方法是什么,如何将Windows键作为修饰符包含在内?
* 我需要一个全局快捷键。这意味着我不必将应用程序置于焦点才能工作。
1个回答

1

在Windows API中使用RegisterHotKey可以注册全局热键。您还需要使用GlobalAddAtom来获取唯一的热键标识符。有关详细信息,请参见this link

Private Declare Function RegisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
Private Declare Function GlobalAddAtom Lib "kernel32" Alias "GlobalAddAtomA" (ByVal lpString As String) As Integer

Private Const WM_HOTKEY As Long = &H312
Private Const MOD_WIN          As Long = &H8

  m_lHotkey = GlobalAddAtom("MyHotkey")
  Call RegisterHotKey(Me.hwnd, m_lHotkey, MOD_WIN, vbKeyO)

然后你只需要在你的窗口上监听 WM_HOTKEY 消息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接