跳到主要内容

crate enigo

搜索

crate enigo 

源代码
展开描述

Enigo 可以让你模拟鼠标和键盘输入事件,效果如同真实硬件产生的事件。它支持 Linux (X11)、macOS 和 Windows。

它可以用于跨平台测试用户界面、构建远程控制应用,或自动化那些没有公开 API 或脚本语言无法访问的用户界面任务。

本库尚处于早期 alpha 状态,API 在未来可能会发生变化。

要使用本库,你只需要了解三件事:

  • Keyboard (trait):用于模拟按键点击、输入文本或类似操作
  • Mouse (trait):用于操作鼠标或获取显示屏尺寸
  • Enigo (结构体):实现了上述两个 trait Keyboard and Mouse

本 crate 此前包含一个简单的 DSL,但现已移除。 为了简化代码并支持对象序列化,你现在可以对本 crate 中的大多数枚举和结构体进行序列化和反序列化,以替代原来的 DSL。 该功能通过 serde 特性启用。可以查看 serde 示例了解如何使用它以 RON 格式序列化 Token。

§示例

use enigo::{
    Button, Coordinate,
    Direction::{Click, Press, Release},
    Enigo, Key, Keyboard, Mouse, Settings,
};
let mut enigo = Enigo::new(&Settings::default()).unwrap();
// 粘贴
enigo.key(Key::Control, Press);
enigo.key(Key::Unicode('v'), Click);
enigo.key(Key::Control, Release);
// 操作鼠标
enigo.move_mouse(500, 200, Coordinate::Abs);
enigo.button(Button::Left, Press);
enigo.move_mouse(100, 100, Coordinate::Rel);
enigo.button(Button::Left, Release);
// 输入文本
enigo.text("hello world");

模块§

agent
本 crate 包含 crate::agent::Token 枚举和 crate::agent::Agent trait。Token 是用于让 Enigo 结构体执行某些操作的指令。如果希望 Enigo 模拟输入,则需要让 enigo 结构体 crate::agent::Agent::execute 该 token。如果想阅读相关代码,可以查看 serde 示例了解其工作原理。

结构体§

Enigo
用于处理事件发送的主结构体
Settings
用于创建 Enigo 结构体及其行为的设置

枚举§

Axis
指定滚动的轴
Button
表示鼠标按键,用于例如 Mouse::button
Coordinate
指定坐标是相对坐标还是绝对坐标
Direction
按键或按钮的方向
InputError
模拟输入时的错误
Key
包含所有可用的按键码。 使用 Key::Unicode 输入任意 Unicode 字符。 如果缺少某个按键,请在我们的仓库中提交 issue,我们会尽快添加。同时,你可以通过 Key::Other crate::Keyboard::raw 函数模拟该按键。某些按键仅在特定平台上可用,请使用条件编译来使用它们。
NewConError
建立新连接时的错误

常量§

EVENT_MARKER
用于区分由 enigo 创建的事件的任意值
EXT

trait§

Keyboard
包含模拟按键按下/释放和输入文本的函数。
Mouse
包含控制鼠标和获取显示屏尺寸的函数。 Enigo 使用笛卡尔坐标系来指定坐标。该坐标系的原点位于当前屏幕的左上角,正值沿坐标轴向下和向右延伸,单位为像素。所有操作系统均使用相同的坐标系。

函数§

set_dpi_awareness
将当前进程设置为指定的每英寸点数 (dpi) 感知上下文 参见官方文档 如果希望应用程序遵循用户的缩放比例,则需要设置此项。否则鼠标坐标和屏幕尺寸将不准确。

类型别名§

InputResult