aardio 模拟键盘鼠标操作

文周周的 1天前 59

 


今天学习在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 拉你


 


最新回复 (0)
返回