今天学习在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[i]);
thread.delay(math.random(100,300))
}
win.loopMessage();
图片三通过key.send()
方法可以像真人打字一样输入文字,还加入了随机延迟,看起来更自然,不会被误认为是机器操作。
综合练习
最后做了一个综合练习,要求先移动鼠标到(500,500),点击后输入"Hello,ld",我的实现代码:
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[i]);
thread.delay(math.random(100,300))
}
}
simulate()
win.loopMessage();
图片四今天学完 aardio 的键鼠模拟,最大的感受是:办公自动化没想象中复杂。之前总觉得重复操作 “忍忍就过去了”,现在发现用代码就能轻松解决,既省时间又能减少失误。后续要多做实操练习,把这些方法落地到日常工作里,让技术真的帮上忙。
aardio 新手交流学习群,一起学习的进
qq群号:697197055
微信群加我 Xue_CatSky 拉你