窗口界面控制FlaUI奇怪问题

使用问题 · 1127 次浏览
atheneus 创建于 1天15小时前

需要自动控制一个软件的一个登陆按钮,发生了奇怪问题

如果直接辅助选择工具获取hwnd,再窗口界面控制FlaUI通过控件名称获取信息,找不到控件

但是此时我打开flaInpect,然后什么都不操作直接退出软件

此时再来用动作执行 辅助选择工具获取hwnd——窗口界面控制FlaUI获取信息,就可以找到控件,输出控件信息,并自动触发这个按钮了

如果我关闭软件,再重新打开,问题继续复现:直接找不到控件,打开flainspect关闭,又可以找到了

 

反复重试了几次都是这个问题

请问可能是什么原因?

不可以使用xpath。试过了,xpath会改变

 


回复内容
atheneus 1天5小时前
#1

今天查看以前归档的有关flaui问题时,找到了和我问题一样的话题

界面控制,运行inspect/FlaUInspect前失败,运行后成功 - Quicker

对比我的问题复现经验,使用flauispy打开软件,控件仍然抄不到,但是手动拖拽指定窗口后,就可以找到控件了。推测inspect/flaUIinspect是打开时全局递归搜索所有窗口的所有控件信息,而flauispy只在指定窗口后才搜索这个窗体的所有控件信息,此后才能用 窗口界面控制FlaUI 找到控件。

推测应该是需要针对目标窗口进行全部控件的递归查询。

有能力的大神给个csharp代码吧,怎么用flaUI先针对目标窗口句柄,进行全体控件的递归查询

CL 1天4小时前
#2

这个问题可能有点复杂,我也没搞太明白。FlaUI依赖于被控程序本身提供自动化机制的响应。如之前那个帖子,有可能第一次访问的时候,被控程序才启动UIAutomation机制,所以第一次失败但是后续成功了。

CL 7小时21分钟前
#3

https://getquicker.net/Help/Versions  新版让AI做了一点优化,方便的话试一下看看有没有效果。

回复主贴