windows自动化桌面软件,Go自动化点击操作
Go的自动化操作其实有点四肢不全的感觉,主要的方面可能就是封装的太少,资料不够多,可参考的东西比较少,这方面铁定有人做过,毕竟自动化的库都出了好几版了,但还是不能和Python
这样的老油条掰一掰手腕。
出于某种需要,花时间去了解了一下,看着不明所以,做起来之后还是比较好理解的(花时间理解是真要花时间),Go里头也是调用的windows API,获取到软件中元素的句柄进行操作。所以很多地方和其他语言都是相通的(理论上都是调用的windows api,代码可能都一样)。
使用到的库
Go实现自动化需要借助robotgo和win。借助windows API,获取软件上按键或其他元素的handle,触发各项操作。
大致流程:
robotgo.GetHWND()
:可以获取到此时Active
窗口的句柄。
win.EnumChildWindows
:从父窗口中获取子元素,意思是从一个桌面软件中,枚举出它的内部button,文本框这样的子元素;其有三个参数。
1 | HWND hWndParent, //父窗口句柄 |
lParam
参数不需要管,这个参数主要是使用者传入回调函数中使用的数据。
win.SendMessage
:向窗口中的元素发送操作指令,例如点击和填充内容操作。
帮助工具—Spy++
使用方法参考:Spy++使用方法
该软件的作用是能够侦查到窗口的元素,以及接收到的各类信息。
例如,我在实际使用操作自动化过程中,操作菜单艰难无比,无法找到打开菜单的方式,通过Spy++
,获取到正常点击菜单元素的message
,以及元素对应的wParam
参数,于是写出了代码:
1 | win.PostMessage(Ghwnd, win.WM_COMMAND, 0x0000E110, 0) |
显然,这个工具类似于bus hound、wireShake一样的存在。
代码
1 | package main |
本文标题:windows自动化桌面软件,Go自动化点击操作
文章作者:小师
发布时间:2019-11-06
最后更新:2022-05-04
原始链接:chunlife.top/2019/11/06/windows自动化桌面软件,Go自动化点击操作/
版权声明:本站所有文章均采用知识共享署名4.0国际许可协议进行许可