获取软件内窗口的问题

使用问题 · 1640 次浏览
iamadsl 创建于 2020-10-12 14:42

这是方正飞翔软件的面板截图,我想通过遍历窗口的方式,获取某个面板是否打开

现在的问题是,我试了用于获取窗口的几种方法,都无法达到要求

1. 获取鼠标位置的窗口:鼠标不想放到面板上,也就是鼠标在任意位置时都能检查面板窗口

2. 根据句柄获取窗口:面板窗口的句柄不是固定的,每次重开软件后,句柄都会变,所以也不通用

3. 获取顶层窗口:这个也没啥用,窗口本身不是置顶的

所以,还有什么方法能按我的需要获取窗口呢?先行谢过!


回复内容
CL 2020-10-12 14:57
#1

这个,可能用找图比较简单一些。

iamadsl 2020-10-12 15:19 :

哦哦,忘了说,最早用的就是找图,依次找激活和未激活时的图,但感觉成功率有点低。。。

CL 回复 iamadsl 2020-10-12 15:20 :

嗯,如果图像内容会有变化,会导致找图失败。需要确保截取的位置不会变。

iamadsl 2020-10-12 15:31 :

刚刚又试了一下,比如在未激活面板的状态下,测试查图没问题,然后激活面板,再取消激活,面板看起来和之前未激活的时候是完全一样的,但再测试查图就报失败。。。。邪了门了——接着,切换一下软件再回到飞翔软件里,面板仍然是未激活的,再测试查图就又找到了。。。。这可能是什么问题?

iamadsl 最后更新于 2020-10-12 15:33
CL 回复 iamadsl 2020-10-12 15:32 :

可能边框/焦点有轻微的变化。 可以截取的时候只截取内部的内容试试。

iamadsl 回复 CL 2020-10-12 15:35 :

好吧,我再试试看,多谢~

Cesar 2020-10-12 17:20
#2

找图的话可以试试我的子程序,进我的主页可以看到,比内置的成功率要高一点

89268690 2021-05-30 11:47
#3

子窗口怎么获取焦点,只能找图吗

CL 2021-05-30 11:58 :

有的软件可以支持通过 “窗口界面控制” 来设置焦点。这个貌似java的界面不太清楚是不是能支持。

回复主贴