4 个版本 (2 个重大更改)
0.3.0 | 2020 年 12 月 7 日 |
---|---|
0.2.1 | 2020 年 9 月 15 日 |
0.2.0 | 2020 年 8 月 26 日 |
0.1.3 | 2020 年 8 月 25 日 |
#132 在 模拟
33KB
792 行
simulate
允许您通过代码模拟输入事件(如键盘按键或鼠标移动)。
进度
目前只支持 Windows。
示例
simulate
可用于模拟键盘按键
use simulate;
use simulate::Key;
// Release a key
simulate::press(Key::Shift).unwrap();
// Send a key (press + release)
simulate::send(Key::H).unwrap();
// Release a key
simulate::release(Key::Shift).unwrap();
// Send a single character
simulate::send('♪').unwrap();
// Type a string
simulate::type_str("Hello, world!").unwrap();
它还可以模拟鼠标事件
use simulate::{self, Key};
// Mouse buttons are treated as keys
simulate::send(Key::MouseLeft).unwrap();
// Move the mouse 100 pixels left, 50 pixels down
simulate::move_mouse_relative(100, 50).unwrap();
// Move the mouse at the center of the screen.
simulate::move_mouse_absolute(0.5, 0.5).unwrap();
// Rotate the mouse wheel forward
simulate::scroll(1.0).unwrap();
// Rotate the mouse wheel to the left
simulate::scroll_horizontal(-1.0).unwrap();
可以使用 EventBuffer
结构来缓冲事件
use simulate::{self, Key, EventBuffer};
// This is really just a Vec<simulate::Event>
let mut buffer = EventBuffer::new();
buffer.press(Key::Shift);
buffer.send(Key::A);
buffer.send(Key::B);
buffer.release(Key::Shift);
buffer.move_mouse_relative(10, 0);
buffer.send(Key::MouseLeft);
buffer.simulate().unwrap();
可以直接使用 Event
结构来创建事件
use simulate::{self, Event};
let my_event = Event::MoveMouseAbsolute {
x: 0.5,
y: 0.25,
map_to_virtual_desktop: true,
};
// Send a single event
simulate::send_event(my_event).unwrap();
依赖项
~185KB