【问题标题】:Set global hotkey with Windows modifier使用 Windows 修饰符设置全局热键
【发布时间】:2011-02-15 07:42:08
【问题描述】:

我想在VB6中设置一个全局热键*来监听键盘快捷键Win + O

我发现了一堆乱七八糟的例子,但没有涉及到 Windows 键。

设置热键的理想方法是什么?如何将 Windows 键作为修饰符包含在内?

* 我正在寻找一个全局快捷方式。这意味着我不必让应用程序处于焦点位置即可工作。

【问题讨论】:

    标签: vb6 shortcut hotkeys


    【解决方案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 消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-22
      • 1970-01-01
      • 2018-12-21
      • 2011-03-21
      • 2022-10-21
      相关资源
      最近更新 更多