Loading

Rust实现hotkey

最近想写一个快捷启动工具来满足自己的需求,刚好用自己最喜欢的 Rust 来实现

实现方法

文档: global_hotkey

具体代码

use global_hotkey::{
    hotkey::{Code, HotKey, Modifiers},
    GlobalHotKeyEvent, GlobalHotKeyManager, HotKeyState,
};
use winit::event_loop::{ControlFlow, EventLoopBuilder};

fn main() {
    let event_loop = EventLoopBuilder::new().build().unwrap();

    let hotkeys_manager = GlobalHotKeyManager::new().unwrap();

    let hotkey = HotKey::new(Some(Modifiers::SHIFT | Modifiers::ALT), Code::KeyD);

    hotkeys_manager.register(hotkey).unwrap();

    let global_hotkey_channel = GlobalHotKeyEvent::receiver();

    event_loop
        .run(move |_event, event_loop| {
            event_loop.set_control_flow(ControlFlow::Poll);

            if let Ok(event) = global_hotkey_channel.try_recv() {
                if hotkey.id() == event.id && event.state == HotKeyState::Released {
                    println!("快捷键启动!!");
                }
            }
        })
        .unwrap();
}

实现效果

posted @ 2024-04-19 23:59  Jacek_Yang  阅读(147)  评论(0)    收藏  举报