#keyboard-input #mouse #mouse-input #keyboard #input #mouse-event #api-bindings

claves

Linux、MacOS 和 Windows 上捕获按键和鼠标点击的库

6 个版本

0.2.0 2023 年 9 月 16 日
0.1.4 2023 年 8 月 18 日
0.1.3 2023 年 7 月 7 日
0.1.2 2023 年 3 月 17 日
0.1.1 2022 年 9 月 28 日

#21 in 可访问性

MIT 许可证

21KB
533

Claves - 在 MacOS 和 Windows 上捕获全局按键和鼠标点击的库

use claves::{init, deinit};

fn main(){
  // Global channel, you can initiate a receiver from multiple threads and all of them will receive the events.
  let receiver = init();
  
  dbg!(receiver.recv().unwrap());
  
  // Deinitializes all threads that capture data from the keyboard and mouse, then empties out the global channel.
  deinit();
}

  • MacOS(使用 Core Graphics API 拦截会话事件,使用 Carbon API 将虚拟键码转换为 Unicode 字符)。需要可访问性权限,请查看 MacOS 示例
  • Windows(使用 Windows Hooks API 拦截事件,使用 Winuser API 将虚拟键码转换为 Unicode 字符)。
  • Linux。目前未计划

依赖项

~0.3–11MB
~76K SLoC