我想在 VB6 中设置一个全局热键* 来监听键盘快捷键Win+ O。
我发现了一堆乱七八糟的例子,但没有涉及到 Windows 键。
设置热键的理想方法是什么?如何将 Windows 键作为修饰符包含在内?
*我追求的是全局捷径。这意味着我不必将应用程序放在焦点上就可以工作。
Windows API 中的 RegisterHotKey 将允许您注册全局热键。您还需要使用 GlobalAddAtom 来获取唯一的热键标识符。有关详细信息,请参阅此链接。
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 消息。