autoit 未在已编译的 python 脚本中检测到 windows
autoit doesnt detect windows in compiled python script
我正在通过 win32com.client 使用 AutoItX3.Control 检测并关闭 Windows 安全对话框 ("do you trust...")。我将 WinExist 与 window title\text 一起使用,并且在 运行 宁 python 脚本(Autoit 版本为 3.3.8.1)时它工作正常。
问题出在编译的 Python 脚本(使用 PyInstaller 编译)。未检测到 window,我无法将其关闭。当我 运行 Autoit 应用程序 (SciTE4AutoIt3) 时,它确实检测到 window。
有什么建议吗?
///// 添加更多信息:
使用以下自动选项:
Opt('WinWaitDelay', 500)
Opt('SendKeyDelay', 8)
Opt('WinTitleMatchMode', 4)
Opt('WinSearchChildren', 1)
Opt('SendKeyDownDelay', 10)
Opt('WinDetectHiddenText', 1)
另外,我运行在另一个进程上将 autoit 作为进程的一个实例 class (Process(target=handle_window_func)
)
您是否尝试过使用经典方法设置活动 X 选项?喜欢:
oAutoItx.AutoItSetOption("WinTitleMatchMode", 4)
而不是:
oAutoItx.Opt("WinTitleMatchMode", 4)
此外,AutoItx 帮助说:"Mode 4 ("仅“为向后兼容而保留)”。
因此,请检查您的选项并选择您可以使用的最简单的选项。
尝试使用以下代码:
import pythoncom
pythoncom.CoInitialize()
这会为调用线程初始化 COM 库。
在此处查看更多信息:
http://docs.activestate.com/activepython/2.5/pywin32/pythoncom__CoInitialize_meth.html
解决方法是 运行在同一个脚本中同时启用自动功能和触发弹出窗口 window 的进程,并在进程 运行 时监视弹出窗口:
popup_p = Popen(*cmd_args, no_wait=True, *cmd_kwargs)
while popup_p.is_running():
handle_window_func()
time.sleep(1)
请注意,Popen 是 运行 和 no_wait - returns 过程,无需等待它完成。
我正在通过 win32com.client 使用 AutoItX3.Control 检测并关闭 Windows 安全对话框 ("do you trust...")。我将 WinExist 与 window title\text 一起使用,并且在 运行 宁 python 脚本(Autoit 版本为 3.3.8.1)时它工作正常。
问题出在编译的 Python 脚本(使用 PyInstaller 编译)。未检测到 window,我无法将其关闭。当我 运行 Autoit 应用程序 (SciTE4AutoIt3) 时,它确实检测到 window。
有什么建议吗?
///// 添加更多信息: 使用以下自动选项:
Opt('WinWaitDelay', 500)
Opt('SendKeyDelay', 8)
Opt('WinTitleMatchMode', 4)
Opt('WinSearchChildren', 1)
Opt('SendKeyDownDelay', 10)
Opt('WinDetectHiddenText', 1)
另外,我运行在另一个进程上将 autoit 作为进程的一个实例 class (Process(target=handle_window_func)
)
您是否尝试过使用经典方法设置活动 X 选项?喜欢:
oAutoItx.AutoItSetOption("WinTitleMatchMode", 4)
而不是:
oAutoItx.Opt("WinTitleMatchMode", 4)
此外,AutoItx 帮助说:"Mode 4 ("仅“为向后兼容而保留)”。 因此,请检查您的选项并选择您可以使用的最简单的选项。
尝试使用以下代码:
import pythoncom
pythoncom.CoInitialize()
这会为调用线程初始化 COM 库。
在此处查看更多信息: http://docs.activestate.com/activepython/2.5/pywin32/pythoncom__CoInitialize_meth.html
解决方法是 运行在同一个脚本中同时启用自动功能和触发弹出窗口 window 的进程,并在进程 运行 时监视弹出窗口:
popup_p = Popen(*cmd_args, no_wait=True, *cmd_kwargs)
while popup_p.is_running():
handle_window_func()
time.sleep(1)
请注意,Popen 是 运行 和 no_wait - returns 过程,无需等待它完成。