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<()>
fn key(&mut self, key: Key, direction: Direction) -> InputResult<()>
发送单个按键事件。它会输入 keysym(虚拟键)。如需输入 keycode,请参考 Keyboard::raw 函数。
某些按键是平台特有的。
§错误
请参考 InputError 的文档以了解在哪些情况下会返回错误。
源代码fn raw(&mut self, keycode: u16, direction: Direction) -> InputResult<()>
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<()>
fn text(&mut self, text: &str) -> InputResult<()>
输入文本
如果可用,使用快速方法输入文本。你可以在这里使用 Unicode 字符,例如:❤️。这与当前键盘布局无关。不能使用此函数输入快捷键或类似的组合。输入快捷键请使用
Keyboard::key 方法。
§错误
文本不能包含 NULL 字节(\0)。请参考InputError 的文档以了解在哪些其他情况下会返回错误。