5 个版本
新 0.2.3 | 2024年8月17日 |
---|---|
0.2.2 | 2024年8月15日 |
0.2.1 | 2024年8月14日 |
0.2.0 | 2024年8月12日 |
0.1.0 | 2024年8月10日 |
#395 in 硬件支持
每月523次下载
540KB
8K SLoC
uiohook-rs
uiohook-rs
是 libuiohook 的 Rust 封装,提供跨平台的键盘和鼠标钩子功能。
特性
- 跨平台支持(Linux、macOS、Windows)
- 低级键盘和鼠标事件处理
- 易于使用的 Rust API
重要:此 crate 尚未在 MacOS
和 Windows
上进行测试,请报告您遇到的任何问题(可能是与依赖项相关的编译问题)。
用法
以下是如何使用 uiohook-rs
的基本示例
use uiohook_rs::{EventHandler, Uiohook, UiohookEvent};
struct MyEventHandler;
impl EventHandler for MyEventHandler {
fn handle_event(&self, event: &UiohookEvent) {
println!("Event: {:?}", event);
}
}
fn main() {
let event_handler = MyEventHandler;
let uiohook = Uiohook::new(event_handler);
if let Err(e) = uiohook.run() {
eprintln!("Error: {}", e);
}
// Stop the hook
if let Err(e) = uiohook.stop() {
eprintln!("Error: {}", e);
}
}
运行演示
在 examples/
目录下有多个示例程序,包括通用事件处理(demo.rs
)、格式化输出(pretty_demo.rs
)以及键盘、鼠标和滚动事件的具体处理程序。除了 pretty_demo.rs
之外,所有其他示例都使用最少的代码来演示钩子功能。
要运行演示
-
克隆仓库
git clone https://github.com/efJerryYang/uiohook-rs.git cd uiohook-rs
-
运行演示
cargo run --example demo
-
按 Ctrl-C 退出。查看输出
Press Ctrl-C to exit MOVED | Mouse | X: 802 | Y: 644 | Button: 0 | Clicks: 0 PRESSED | Caps Lock | Code: 58 | Raw: 65509 RELEASED | Caps Lock | Code: 58 | Raw: 65509 PRESSED | Caps Lock | Code: 58 | Raw: 65509 RELEASED | Caps Lock | Code: 58 | Raw: 65509 PRESSED | Left Shift | Code: 42 | Raw: 65505 PRESSED | B | Code: 48 | Raw: 66 TYPED | B | Code: 66 | Raw: 66 RELEASED | B | Code: 48 | Raw: 66 RELEASED | Left Shift | Code: 42 | Raw: 65505 PRESSED | H | Code: 35 | Raw: 104 TYPED | h | Code: 104 | Raw: 104 RELEASED | H | Code: 35 | Raw: 104 PRESSED | Mouse | X: 802 | Y: 644 | Button: 1 | Clicks: 1 RELEASED | Mouse | X: 802 | Y: 644 | Button: 1 | Clicks: 1 CLICKED | Mouse | X: 802 | Y: 644 | Button: 1 | Clicks: 1 PRESSED | Mouse | X: 802 | Y: 644 | Button: 1 | Clicks: 1 DRAGGED | Mouse | X: 803 | Y: 644 | Button: 0 | Clicks: 1 ... (more DRAGGED events) DRAGGED | Mouse | X: 920 | Y: 630 | Button: 0 | Clicks: 0 DRAGGED | Mouse | X: 921 | Y: 630 | Button: 0 | Clicks: 0 RELEASED | Mouse | X: 921 | Y: 630 | Button: 1 | Clicks: 0 PRESSED | Left Control | Code: 29 | Raw: 65507 PRESSED | C | Code: 46 | Raw: 99 TYPED | c | Code: 99 | Raw: 99 Exiting...
许可证
GNU 通用公共许可证 v3.0,请参阅 LICENSE。
依赖项
~2–14MB
~132K SLoC