#api #windows-event #winapi #windows #api-bindings

win_event_hook

使用 SetWinEventHook 的安全 Rust API,由 windows crate 提供

5 个不稳定版本

0.3.0 2023年9月28日
0.2.0 2023年7月5日
0.1.2 2023年7月4日
0.1.1 2023年7月4日
0.1.0 2023年7月4日

Windows API 中排名 #108

Download history 3/week @ 2024-03-07 2/week @ 2024-03-14 11/week @ 2024-03-28 4/week @ 2024-04-04 3/week @ 2024-04-18 104/week @ 2024-04-25

每月下载量 75

MIT 许可证

68KB
893 行代码(不含注释)

win_event_hook

Crates.io Documentation MIT licensed Build Status

使用 SetWinEventHook 的安全 Rust API,由 windows crate 提供。

使用方法

要使用 win_event_hook,请将以下内容添加到您的 Cargo.toml

[dependencies]
win_event_hook = "0.1"

然后创建一个配置并安装钩子,例如

use win_event_hook::events::{Event, NamedEvent};

// create our hook config
let config = win_event_hook::Config::builder()
    .skip_own_process()
    .with_dedicated_thread()
    .with_events(vec![
        // to see these, try right clicking
        Event::Named(NamedEvent::ObjectShow),
        Event::Named(NamedEvent::ObjectHide),
        // to see this, try moving around the cursor
        Event::Named(NamedEvent::ObjectLocationChange),
    ])
    .finish();

// and our handler
let handler = |ev, _, _, _, _, _| {
    println!("got event: {:?}", ev);
};

// install the hook
let hook = win_event_hook::WinEventHook::install(config, handler)?;

hook 被丢弃时,将尝试自动卸载。卸载可能会失败 - 要处理失败,可以自行调用 uninstall,例如

// building on the above example

// uninstall the hook
hook.uninstall()?;

有关更多信息,请参阅 生成的文档

许可证

本项目采用 MIT 许可证

依赖项

~2–40MB
~576K 行代码(约额外的代码行)