#[cfg(feature = "mouse")]
fn main() {
println!("=== Mouse Control Example ===\n");
println!("Available mouse operations:");
println!("- Click (left, right, middle)");
println!("- Press/Release buttons");
println!("- Move (absolute and relative)");
println!("- Scroll (up/down)");
println!("\nTwo input methods:");
println!("1. PostMessage: Background input to specific window (requires coordinates)");
println!("2. SendInput: System-level global input (optional coordinates)");
#[cfg(feature = "mouse")]
{
use win_auto_utils::mouse::SendInputMouse;
println!("\n--- SendInput Example ---");
let _ = SendInputMouse::new();
println!("✓ Created SendInputMouse instance");
println!(" Methods available:");
println!(" - click_left() / click_left_at(x, y)");
println!(" - press_left() / release_left()");
println!(" - move_to(x, y) / move_relative(dx, dy)");
println!(" - scroll_up(delta) / scroll_down(delta)");
}
#[cfg(all(feature = "mouse", feature = "hwnd"))]
{
use win_auto_utils::mouse::PostMessageMouse;
use windows::Win32::Foundation::HWND;
println!("\n--- PostMessage Example ---");
let hwnd = HWND(std::ptr::null_mut()); let _ = PostMessageMouse::new(hwnd);
println!("✓ Created PostMessageMouse instance");
println!(" Methods available:");
println!(" - click_left(x, y) / click_right(x, y) / click_middle(x, y)");
println!(" - press_left(x, y) / release_left(x, y)");
println!(" - move_to(x, y)");
println!(" - scroll_up(x, y, delta) / scroll_down(x, y, delta)");
println!("\nNote: PostMessage requires a valid window handle.");
println!("Use hwnd module to find target windows.");
}
println!("\n=== Example Completed ===");
}
#[cfg(not(feature = "mouse"))]
fn main() {
println!("This example requires the 'mouse' feature to be enabled.");
println!("Run with: cargo run --example mouse_control --features \"mouse\"");
}