非业余 - aardio 编程语言 - 非官方问答社区 - aardio

 找回密码
 立即注册

微信登录

只需一步,快速开始

QQ登录

只需一步,快速开始

查看: 45|回复: 0

[心得] aardio 键盘模拟鼠标操作

[复制链接]
  • TA的每日心情
    奋斗
    前天 09:47
  • 签到天数: 85 天

    连续签到: 3 天

    [LV.6]常住居民II

    41

    主题

    91

    回帖

    1172

    积分

    钻石会员

    积分
    1172
    来自: 中国贵州贵阳
    发表于 3 天前 | 显示全部楼层 |阅读模式 来自: 中国贵州贵阳
    非业余 - aardio 编程语言 - 非官方问答社区
    风行者三期培训:Aardio+Python+Flutter,1000集课程让你成为全栈开发高手!https://mp.weixin.qq.com/s/_WOoHFtITUyLk2k7BXYGkg
    Aardio培训大揭秘,轻松上手打造个人项目!https://mp.weixin.qq.com/s/cr47qhp_Cpz0p57lbbPwug
    aardio风行者第二期培训班https://mp.weixin.qq.com/s/uB6XHUDnGSk0JlWuiBE9AA
    aardio风行者第三期培训班https://mp.weixin.qq.com/s/cdZcvFiAWhlYTaSrQGCPvA
    本帖最后由 XWCXF 于 2025-9-3 14:22 编辑


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

    模拟鼠标点击

    原来在aardio里模拟鼠标点击这么简单,我试了这个示例:

    [AAuto] 纯文本查看 复制代码
    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)的地方进行左键点击,最下化窗口。

    模拟鼠标移动
    有时候需要先移动鼠标再操作,这个也很容易实现:

    [AAuto] 纯文本查看 复制代码
    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)的位置,参数还可以控制移动的速度和步数,很灵活。

    模拟键盘输入
    除了鼠标操作,模拟键盘输入也很重要,试了这个输入文字的例子:

    [AAuto] 纯文本查看 复制代码
    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, World!",我的实现代码:

    [AAuto] 纯文本查看 复制代码
    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 拉你





    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×
    非业余 - aardio 编程语言 - 非官方问答社区
    风行者三期培训:Aardio+Python+Flutter,1000集课程让你成为全栈开发高手!https://mp.weixin.qq.com/s/_WOoHFtITUyLk2k7BXYGkg
    Aardio培训大揭秘,轻松上手打造个人项目!https://mp.weixin.qq.com/s/cr47qhp_Cpz0p57lbbPwug
    aardio风行者第二期培训班https://mp.weixin.qq.com/s/uB6XHUDnGSk0JlWuiBE9AA
    aardio风行者第三期培训班https://mp.weixin.qq.com/s/cdZcvFiAWhlYTaSrQGCPvA
    回复

    使用道具 举报

    *滑块验证:
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|非业余 - aardio 编程语言 - 非官方问答社区 知道创宇云防御

    GMT+8, 2025-9-6 05:41 , Processed in 0.091051 second(s), 32 queries .

    Powered by Discuz! X3.5

    © 2001-2025 Discuz! Team.

    快速回复 返回顶部 返回列表