[英]autoit doesnt detect windows in compiled python script
我通过win32com.client使用AutoItX3.Control来检测并关闭Windows安全对话框(“你信任......”)。 我使用带有窗口标题\\文本的WinExist,它在运行python脚本时工作正常(自动版本是3.3.8.1)。
问题在于编译的Python脚本(使用PyInstaller编译)。 窗口未检测到,我无法关闭它。 当我运行Autoit应用程序(SciTE4AutoIt3)时,它确实检测到窗口。
有什么建议?
/////添加更多信息:使用以下自动选项:
Opt('WinWaitDelay', 500)
Opt('SendKeyDelay', 8)
Opt('WinTitleMatchMode', 4)
Opt('WinSearchChildren', 1)
Opt('SendKeyDownDelay', 10)
Opt('WinDetectHiddenText', 1)
我也在另一个进程上运行autoit作为Process类的一个实例( Process(target=handle_window_func)
)
您是否尝试使用经典方法设置活动X选项? 喜欢:
oAutoItx.AutoItSetOption("WinTitleMatchMode", 4)
而不是: oAutoItx.Opt("WinTitleMatchMode", 4)
此外,AutoItx帮助说:“模式4(”仅“保持向后兼容性”)。 因此,请检查您的选项,并采取最简单的方法。
尝试使用以下代码:
import pythoncom
pythoncom.CoInitialize()
这会初始化调用线程的COM库。
在此处查看更多信息: http : //docs.activestate.com/activepython/2.5/pywin32/pythoncom__CoInitialize_meth.html
解决方法是运行autoit功能和在同一脚本中触发弹出窗口的进程,并在进程运行时监视弹出窗口: popup_p = Popen(*cmd_args, no_wait=True, *cmd_kwargs) while popup_p.is_running(): handle_window_func() time.sleep(1)
注意popup_p = Popen(*cmd_args, no_wait=True, *cmd_kwargs) while popup_p.is_running(): handle_window_func() time.sleep(1)
使用no_wait运行 - 返回进程而不等待它完成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.