#input-event #input #keyboard-input #hotkey #mouse #keyboard #bot

inputbot

跨平台(Windows & Linux)库,用于模拟键盘/鼠标输入事件并注册全局输入设备事件处理器

13个版本

0.6.0 2023年8月17日
0.5.1 2021年9月5日
0.5.0 2020年8月30日
0.4.0 2017年12月23日
0.1.2 2017年6月19日

#235硬件支持

Download history 239/week @ 2024-03-13 227/week @ 2024-03-20 219/week @ 2024-03-27 260/week @ 2024-04-03 154/week @ 2024-04-10 191/week @ 2024-04-17 223/week @ 2024-04-24 196/week @ 2024-05-01 198/week @ 2024-05-08 188/week @ 2024-05-15 236/week @ 2024-05-22 206/week @ 2024-05-29 184/week @ 2024-06-05 168/week @ 2024-06-12 233/week @ 2024-06-19 152/week @ 2024-06-26

770 每月下载量
用于 6 个包

MIT 许可证

59KB
1.5K SLoC

InputBot 文档链接 crates.io 版本

跨平台(Windows & Linux)库,用于模拟键盘/鼠标输入事件并注册全局输入设备事件处理器。

允许编写将长操作序列压缩成单个按键的自动化程序。

用法

[dependencies]
inputbot = "0.6"
use inputbot::{KeySequence, KeybdKey::*, MouseButton::*};
use std::{thread::sleep, time::Duration};

fn main() {
    // Bind the number 1 key your keyboard to a function that types 
    // "Hello, world!" when pressed.
    Numrow1Key.bind(|| KeySequence("Hello, world!").send());

    // Bind your caps lock key to a function that starts an autoclicker.
    CapsLockKey.bind(move || {
        while CapsLockKey.is_toggled() {
            LeftButton.press();
            LeftButton.release();

            sleep(Duration::from_millis(30));
        }
    });

    // Call this to start listening for bound inputs.
    inputbot::handle_input_events();
}

注意:README和示例基于InputBot的develop分支。如果某个功能不起作用,你很可能使用的是crates.io上的版本。如果你想使用最新构建版本,请在你的Cargo.toml中添加以下内容

[dependencies]
inputbot = { git = "https://github.com/obv-mikhail/InputBot", branch = "develop" }

查看 示例 了解如何使用每个功能。

构建依赖项

基于Debian或Ubuntu的发行版

  • libx11-dev
  • libxtst-dev
  • libudev-dev
  • libinput-dev

注意:libinput要求在Linux上以sudo运行InputBot - sudo ./target/debug/<程序名称>

示例

您可以通过克隆库并运行 cargo run --example <示例名称> 来运行包含的示例。类似于上面的注释,在Linux上您必须运行 cargo build --examples && sudo ./target/debug/<示例名称>

这在贡献时测试库特别有用。

依赖项

~0.4–1.9MB
~35K SLoC