用于监听和向键盘和鼠标发送事件的简单库(MacOS、Windows、Linux)
一个简单的库,可在 macOS、Windows 和 Linux 上 全局 监听和发送事件,到键盘和鼠标 (x11)。 您还可以查看 Enigo,这是另一个 这本书帮助我写出了这篇文章。 这个项目目前是我为了了解 Rust 生态系统而开发的一个个人项目。
use rdev::{listen, Event};
// This will block.
if let Err(error) = listen(callback) {
println!("Error: {:?}", error)
}
fn callback(event: Event) {
println!("My callback {:?}", event);
match event.name {
Some(string) => println!("User wrote {:?}", string),
None => (),
}
}在使用 listen 函数时,应注意以下事项:
运行阻塞 listen 函数(循环)的进程必须是父进程(不需要先进行分支)。该进程需要获得对 Accessibility API 的访问权限(即如果您的进程在 Terminal.app 中运行,则需要在系统偏好设置 > 安全与隐私 > 隐私 > 可访问性中添加 Terminal.app)。如果进程没有获得对 Accessibility API 的访问权限,macOS 将默默地忽略 rdev 的 listen 回调,不会通过事件触发它。不会产生任何错误。
暂无开放 Issues,或尚未同步最近议题。