繁体   English   中英

autoit没有检测编译的python脚本中的窗口

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM