XWCXF 发表于 3 天前

aardio 键盘模拟鼠标操作

本帖最后由 XWCXF 于 2025-9-3 14:22 编辑


今天学习在aardio中模拟键盘和鼠标操作,记录一下学习成果:
模拟鼠标点击

原来在aardio里模拟鼠标点击这么简单,我试了这个示例:
import win.ui
import mouse
/*DSG{{*/
var winform = win.form(text="模拟鼠标点击示例";right=759;bottom=469)
winform.add(
edit={cls="edit";text="稍等一下,有惊喜";left=4;top=2;right=753;bottom=171;edge=1;multiline=1;z=1}
)
/*}}*/

winform.show();

// 模拟鼠标左键点击屏幕坐标 (925, 1044) 的位置
onInit = function(){
    thread.delay(2000)
    mouse.click(925,1044,true)

}
onInit()

win.loopMessage();


代码里的mouse.click(925,1044,true)就是让鼠标在屏幕坐标(925,1044)的地方进行左键点击,最下化窗口。
模拟鼠标移动
有时候需要先移动鼠标再操作,这个也很容易实现:
import win.ui
import mouse
/*DSG{{*/
var winform = win.form(text="模拟鼠标移动示例";right=759;bottom=469)
winform.add()
/*}}*/

//winform.show();

// 模拟鼠标移动到屏幕坐标 (200, 200) 的位置
onInit = function(){
   
    mouse.moveTo(200,200,true,2,10)
}

onInit()
win.loopMessage();


这段代码让鼠标平滑地移动到(200,200)的位置,参数还可以控制移动的速度和步数,很灵活。
模拟键盘输入
除了鼠标操作,模拟键盘输入也很重要,试了这个输入文字的例子:
import math;
import winex
import win.ui;
import winex.key

/*DSG{{*/
var winform = win.form(text="模拟键盘输入";right=759;bottom=469)
winform.add(
edit={cls="edit";left=4;top=6;right=750;bottom=202;edge=1;multiline=1;z=1}
)
/*}}*/

winform.show();

var key = winex.key

var hEdit = winform.edit.hwnd;

var text = 'Hello, World!';

var a = string.split(text);

for(i=1;#a;1){
   
    key.send(hEdit, a);
    thread.delay(math.random(100,300))
}

win.loopMessage();


                                                                     
通过key.send()方法可以像真人打字一样输入文字,还加入了随机延迟,看起来更自然,不会被误认为是机器操作。
综合练习
最后做了一个综合练习,要求先移动鼠标到(500,500),点击后输入"Hello, World!",我的实现代码:
import winex
import win.ui;
import winex.key
import mouse

var winform = win.form(text="综合练习";right=759;bottom=469)
winform.add(
edit={cls="edit";left=4;top=6;right=750;bottom=202;edge=1;multiline=1;z=1};
edit2={cls="edit";left=10;top=352;right=277;bottom=396;edge=1;multiline=1;z=2}
)

winform.show();

function simulate(){
    import math
    var key = winex.key
   
    var hEdit1 = winform.edit.hwnd;
    key.send(hEdit1, "Hello, World!");

    mouse.moveTo(556,707,true,2,10)
   
    var new_hEdit = winform.edit2.hwnd;
   
    var click = mouse.click()
   
    var hEdit = winex.wait(click)
    var text = 'Hello, World!';
    var a = string.split(text);
   
    for(i=1;#a;1){
      key.send(new_hEdit, a);
      thread.delay(math.random(100,300))
    }      
}

simulate()

win.loopMessage();

今天学完 aardio 的键鼠模拟,最大的感受是:办公自动化没想象中复杂。之前总觉得重复操作 “忍忍就过去了”,现在发现用代码就能轻松解决,既省时间又能减少失误。后续要多做实操练习,把这些方法落地到日常工作里,让技术真的帮上忙。
aardio 新手交流学习群,一起学习的进qq群号:697197055
微信群加我Xue_CatSky 拉你




页: [1]
查看完整版本: aardio 键盘模拟鼠标操作