# logitech-cve A Rust library for interacting with Logitech virtual driver. # Usage ## Mouse ### Example ```rust use logitech_cve::{ device::Device, mouse::{Mouse, MouseButton} }; fn main() { let device = Device::try_new().expect("Logitech G HUB 2021.11.1775 is not installed"); // Req for Driver Handling let mouse = Mouse::new(&device); // Init Mouse mouse.move_relative(MouseButtons::Release, 100, 100); // (x,y) relative mouse.move_absolute(MouseButtons::Left, 100, 100, 30); // (x,y) absolute and 30ms between each step mouse.wheel(1); // Scroll up mouse.wheel(-1); // Scroll down mouse.click(MouseButtons::Left, 120); // Press and sleeps for 120ms before release // OR mouse.press(MouseButtons::Left); // Press std::thread::sleep(std::time::Duration(100)); // Custom sleep mouse.release(); // Release } ``` ## Keyboard ### Example ```rust use logitech_cve::{ device::Device, keyboard::{Keyboard, Key} }; fn main() { let device = Device::try_new().expect("Logitech G HUB 2021.11.1775 is not installed"); // Req for Driver Handling let keyboard = Keyboard::new(&device); // Init Keyboard keyboard.press_and_release(Key::A, 120); // Press and sleeps for 120ms before release // Press multiple buttons keyboard.multi_press(Key::A, Key::B, Key::C, Key::Release, Key::Release, Key::Release); std::thread::sleep(std::time::Duration(100)); // Custom sleep keyboard.release(); // Release all buttons // Types "Hello, World!" with 50ms before release each button keyboard.type_string("Hello, World!", 50).expect("Should be OK"); } ``` ## Requirements - Logitech G HUB 2021.11.1775 ## Credits - [ekknod/logitech-cve](https://github.com/ekknod/logitech-cve)