跳到主要内容

Keyboard

搜索

trait Keyboard 

源代码
pub trait Keyboard {
    // Required methods
    fn key(&mut self, key: Key, direction: Direction) -> InputResult<()>;
    fn raw(&mut self, keycode: u16, direction: Direction) -> InputResult<()>;

    // Provided method
    fn text(&mut self, text: &str) -> InputResult<()> { ... }
}
展开描述

包含模拟按键按下/释放和输入文本的函数。

对于输入文本,Keyboard::text 函数是最佳选择。 如果希望输入按键而无需关心布局或键位映射,请使用 Keyboard::key 函数。如果希望按下某个特定的(物理)按键(例如游戏中常用的 WASD),请使用 Keyboard::raw 函数。最终得到的 keysym 取决于布局/键位映射。

必需方法§

源代码

fn key(&mut self, key: Key, direction: Direction) -> InputResult<()>

发送单个按键事件。它会输入 keysym(虚拟键)。如需输入 keycode,请参考 Keyboard::raw 函数。

某些按键是平台特有的。

§错误

请参考 InputError 的文档以了解在哪些情况下会返回错误。

源代码

fn raw(&mut self, keycode: u16, direction: Direction) -> InputResult<()>

发送原始 keycode。keycode 在当前布局下可能已映射或未映射,你需要自行确认。如果你希望无论布局如何都模拟同一个按键(如游戏中常用的 WASD),此函数非常有用。请参考 Keyboard::key 函数,如果你只想输入某个特定按键而无需关心布局/键位映射。 仅 Windows:如果你希望输入扩展按键的 keycode(扫描码),需要设置额外的位。例如可以这样:enigo.raw(45 | EXT, Direction::Click)

§错误

请参考 InputError 的文档以了解在哪些情况下会返回错误。

提供方法§

源代码

fn text(&mut self, text: &str) -> InputResult<()>

输入文本 如果可用,使用快速方法输入文本。你可以在这里使用 Unicode 字符,例如:❤️。这与当前键盘布局无关。不能使用此函数输入快捷键或类似的组合。输入快捷键请使用 Keyboard::key 方法。

§错误

文本不能包含 NULL 字节(\0)。请参考InputError 的文档以了解在哪些其他情况下会返回错误。

实现者§