写一个SAPGUI自助登陆的python脚本程序(2)——句柄抓取
何为句柄
Windows操作系统中的句柄:
在windows程序里,各种程序的图标、窗口这些资源,都会在使用时被分配一定的内存去做处理,所以就需要有标识这些资源的符号。
叫做handle
,译作句柄
。
所以也就是说,每一个电脑开出来的应用程序的窗口,都是有一个handle标识它的,找到它,就能定位到窗口,去做我们想做的操作。
抓取句柄
抓句柄,可以通过VisualStudio的工具spy
去抓取。
如果电脑完整安装了vs的话,那么就可以在安装目录里找到它,位置是在tools的文件夹里,大概是下图的这个位置呢。
现在使用spyxx去抓。
操作就是使用Find Window
,然后拖动capture到想要捕获的窗口上就好了。
需要注意的是,比如登陆gui,看上去是一个窗口,但是界面、按钮,甚至筛选器,都对应到不同的句柄。所以要注意capture捕获放置的位置。
正式操作
- 抓登陆gui的句柄。
- 在gui的句柄下,抓filter的句柄。
- 在filter位置输入要登陆的client,
然后抓登陆
按钮的句柄,抓到后,键入鼠标左键单击
。
这样抓取窗口部分就完成了。
相关代码
1 | client = input("\n选择登陆的Client:") |
代码的部分说明:
- 提前定义好,各个client的代号,然后根据输入的代号,对应到client,在抓到filter的句柄时,输入client代码。
win32gui.FindWindow()
和win32gui.FindWindowEx()
,一个是用来抓取主界面,一个是抓取主界面附属的子界面,两个的用法有差别。
通过抓取句柄,捕获操作界面的部分,差不多就这样了。
后面再继续。