#mouse-input #mouse #keyboard #hotkey #api-bindings

hookmap-core

键盘和鼠标的全局钩子和输入模拟

15个版本

0.2.1 2022年12月6日
0.2.0 2022年5月13日
0.1.12 2022年1月2日
0.1.11 2021年10月7日
0.1.1 2021年7月31日

#1887硬件支持


用于 hookmap

MIT/Apache

44KB
1K SLoC

hookmap-core

Crates.io API reference

hookmap 的核心库

此库提供键盘和鼠标的输入模拟和全局钩子。

支持的操作系统

  • Windows 10

示例

use hookmap_core::{button::Button, event::Event, mouse};

fn main() {
    let rx = hookmap_core::install_hook();

    while let Ok((event, native_handler)) = rx.recv() {
        match event {
            Event::Button(event) => {
                native_handler.dispatch();

                match event.target {
                    Button::RightArrow => println!("Left"),
                    Button::UpArrow => println!("Up"),
                    Button::LeftArrow => println!("Right"),
                    Button::DownArrow => println!("Down"),
                    _ => {}
                };
            }

            Event::Cursor(e) => {
                native_handler.block();

                // Reverses mouse cursor movement
                let (dx, dy) = e.delta;
                mouse::move_relative(-dx, -dy);
            }

            Event::Wheel(e) => {
                native_handler.dispatch();
                println!("delta: {}", e.delta);
            }
        }
    }
}

依赖项

~1–38MB
~561K SLoC