Skip to content

minghuip8-source/autocontrol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AutoControl

autocontrol 是一个基于 Rust 开发的 Windows 自动化控制库, 它封装了 Windows 原生 API,提供简单、安全、高性能的自动化接口。

主要功能

  • 鼠标控制
  • 键盘控制
  • 组合键
  • 文本输入
  • 剪贴板操作
  • 屏幕信息获取
  • 全屏截图
  • 区域截图

安装

运行 cargo add autocontrol 或者在Cargo.toml文件中添加autocontrol = "0.1.1"

使用方法

导入并初始化AutoControl

use autocontrol::AutoControl;

fn main() {
    let auto = AutoControl::new();
}

鼠标控制

  • 获取当前鼠标屏幕坐标
    let (x, y) = auto.position().unwrap();
    println!("x={x},y={y}");
  • 左键单击
    auto.left_click().unwrap();
  • 右键单击
    auto.right_click().unwrap();
  • 中键单击
    auto.middle_click().unwrap();
  • 按下和释放鼠标左键
    auto.left_down().unwrap();
    auto.left_up().unwrap();
  • 鼠标双击
    auto.double_click().unwrap();
  • 相对移动鼠标
    // 鼠标向右移动100像素,向下移动50像素
    auto.move_relative(100, 50).unwrap();
  • 移动鼠标到指定屏幕坐标
    // 鼠标移动到(200,100)坐标点
    auto.move_absolute(200, 100).unwrap();
  • 垂直滚动鼠标滚轮
    //滚轮向下移动,一个标准滚轮单位通常为 `120`
    auto.scroll_vertical(-120).unwrap();
  • 水平滚动鼠标滚轮
    //滚轮向左移动,一个标准滚轮单位通常为 `120`
    auto.scroll_horizontal(-120).unwrap();
  • 平滑移动鼠标到目标位置
    // 1秒移动到(800,600)位置
    auto.smooth_move(800, 600, 1000).unwrap();
  • 拖拽鼠标
    // 鼠标1秒钟从(50, 50)拖拽到(200, 200)位置
    auto.drag((50, 50), (200, 200), 1000).unwrap();
  • 暂停等待
    //等待1秒
    auto.wait(1000).unwrap();

键盘控制

  • 按下键盘按键
    // 使用枚举方式
    use autocontrol::Key;
    auto.key_down(Key::A).unwrap();
    
    //使用字符串方式
    auto.key_down_str("b").unwrap();
  • 释放键盘按键
    // 使用枚举方式
    use autocontrol::Key;
    auto.key_up(Key::A).unwrap();
    
    //使用字符串方式
    auto.key_up_str("b").unwrap();
  • 按下并释放键盘按键
    // 使用枚举方式
    use autocontrol::Key;
    auto.press(Key::A).unwrap();

    //使用字符串方式
    auto.press_str("b").unwrap();
  • 执行组合键
    // 使用枚举方式
    use autocontrol::Key;
    auto.combo([Key::Ctrl, Key::C]).unwrap();

    //使用字符串方式
    auto.combo_str(["ctrl", "v"]).unwrap();
  • 输入文本
    auto.text("hello rust!").unwrap();
    auto.text("你好,🦀!").unwrap();

屏幕操作

  • 获取主显示器宽度
    let width = auto.screen_width().unwrap();
    println!("{width}");
  • 获取主显示器高度
    let height = auto.screen_height().unwrap();
    println!("{height}");
  • 获取主显示器尺寸
    let (width, height) = auto.screen_size().unwrap();
    println!("width={width},height={height}");
  • 全屏截图
    //全屏截图并保存为full.png
    auto.screenshot().unwrap().save("full.png").unwrap();
  • 区域截图
    // 从(100,100)位置开始截取宽500高300的区域截图并保存为region.png
    auto.screenshot_region(100, 100, 500, 300).unwrap().save("region.png").unwrap();

剪贴板操作

  • 获取剪贴板文本 · 剪贴板为空时报错未处理,慎用
    let text = auto.clipboard_get_text().unwrap();
    println!("{text}");
  • 设置剪贴板文本
    auto.clipboard_set_text("你好,🦀!").unwrap();
  • 清空剪贴板内容
    auto.clipboard_clear().unwrap();
  • 获取剪贴板图片 · 剪贴板为空时报错未处理,慎用
    let image = auto.clipboard_get_image().unwrap();
  • 设置剪贴板图片
    auto.clipboard_set_image(&image).unwrap();

About

`autocontrol` 是一个基于 Rust 开发的 Windows 自动化控制库, 它封装了 Windows 原生 API,提供简单、安全、高性能的自动化接口。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages