use usehid_core::{Device, Mouse, MouseButton};
use std::thread::sleep;
use std::time::Duration;
fn main() -> Result<(), Box<dyn std::error::Error>> {
println!("Creating virtual mouse...");
let mut mouse = Mouse::new();
mouse.create()?;
println!("Virtual mouse created! Moving around...");
for _ in 0..4 {
for _ in 0..10 {
mouse.move_by(10, 0)?;
sleep(Duration::from_millis(50));
}
for _ in 0..10 {
mouse.move_by(0, 10)?;
sleep(Duration::from_millis(50));
}
for _ in 0..10 {
mouse.move_by(-10, 0)?;
sleep(Duration::from_millis(50));
}
for _ in 0..10 {
mouse.move_by(0, -10)?;
sleep(Duration::from_millis(50));
}
}
println!("Clicking...");
mouse.click(MouseButton::LEFT)?;
sleep(Duration::from_millis(500));
println!("Double clicking...");
mouse.double_click(MouseButton::LEFT)?;
sleep(Duration::from_millis(500));
println!("Right clicking...");
mouse.click(MouseButton::RIGHT)?;
sleep(Duration::from_millis(500));
println!("Scrolling...");
for _ in 0..5 {
mouse.scroll(-3)?; sleep(Duration::from_millis(100));
}
for _ in 0..5 {
mouse.scroll(3)?; sleep(Duration::from_millis(100));
}
println!("Done!");
mouse.destroy()?;
Ok(())
}