#desktop-applications #hotkey #global #gui-applications #windowing

global-hotkey

桌面应用程序的全局热键

20 个版本

0.6.0 2024年8月15日
0.5.4 2024年5月27日
0.5.1 2024年3月7日
0.4.1 2023年11月24日
0.1.2 2023年2月12日

#183GUI

Download history 1761/week @ 2024-05-04 3201/week @ 2024-05-11 3314/week @ 2024-05-18 5411/week @ 2024-05-25 3684/week @ 2024-06-01 1471/week @ 2024-06-08 1665/week @ 2024-06-15 1700/week @ 2024-06-22 1699/week @ 2024-06-29 1854/week @ 2024-07-06 1803/week @ 2024-07-13 1845/week @ 2024-07-20 3973/week @ 2024-07-27 4445/week @ 2024-08-03 5157/week @ 2024-08-10 4587/week @ 2024-08-17

18,345 每月下载量
用于 20 个包(直接使用6个)

Apache-2.0 OR MIT

81KB
2K SLoC

global_hotkey 允许您为桌面应用程序注册全局热键。

支持平台

  • Windows
  • macOS
  • Linux (仅X11)

平台特定说明

  • 在 Windows 上,必须在线程上运行 win32 事件循环。它不需要是主线程,但您必须在与事件循环相同的线程上创建全局热键管理器。
  • 在 macOS 上,必须在主线程上运行事件循环,因此您也需要在主线程上创建全局热键管理器。

示例

use global_hotkey::{GlobalHotKeyManager, hotkey::{HotKey, Modifiers, Code}};

// initialize the hotkeys manager
let manager = GlobalHotKeyManager::new().unwrap();

// construct the hotkey
let hotkey = HotKey::new(Some(Modifiers::SHIFT), Code::KeyD);

// register it
manager.register(hotkey);

处理全局热键事件

您还可以使用 GlobalHotKeyEvent::receiver 监听菜单事件,以获取热键按下事件。

use global_hotkey::GlobalHotKeyEvent;

if let Ok(event) = GlobalHotKeyEvent::receiver().try_recv() {
    println!("{:?}", event);
}

许可证

Apache-2.0/MIT

依赖项

~1–10MB
~98K SLoC