aardio 模拟键盘鼠标操作

By xwcxf at 2025-09-03 • 0人收藏 • 408人看过

今天学习在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();


1.gif


代码里的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();


2.gif




这段代码让鼠标平滑地移动到(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();



3.gif


                                                                     


通过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();


4.gif




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


aardio 新手交流学习群,一起学习的进

qq群号:697197055
微信群加我  Xue_CatSky 拉你








3 个回复 | 最后更新于 2025-09-23
2025-09-03   #1
2025-09-08   #2

话说如果aardio也支持和c#一样界面初始化代码分开文件写,感觉代码会整洁很多

2025-09-23   #3

回复#2 @aubreychao :

我记得是可以分开的,只是我没用,这点代码

登录后方可回帖

登 录
信息栏
本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...