Python 2.7
操作系统:Windows(程序始终在 Windows 上运行,因此交叉兼容性不是问题)
我被迫使用外部应用程序作为验证过程的一部分,并且在隐藏作为该外部程序的输出的弹出窗口时遇到了麻烦。
基本上我这样做:
args = [ "-A" + param_a, "-B" + param_b, "-C" + param_c ]
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess._subprocess.STARTF_USESHOWWINDOW
startupinfo.wShowWindow = subprocess._subprocess.SW_HIDE
process = Popen(["C:\external_app.exe", args[0],args[1],args[2]], startupinfo=startupinfo, shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
(output, err) = process.communicate()
exit_code = process.wait()
print exit_code
该代码可以工作,但是当缺少参数或参数无效时,外部程序会输出一个弹出窗口,其中包含相应的消息和一个“确定”按钮,需要单击该按钮才能继续。
在代码中我还包含了所有阻止的尝试that从发生。
我知道必须有一种方法可以禁用此行为,因为程序可以作为独立的 Windows 任务工作,并且不会被任何这些消息中断。
也许有一种方法可以在 Python 或 Windows 本身中模拟这一点?
或者也许有一种方法可以自动确认应用程序的所有传入对话框弹出窗口?
任何解决方案都可以。
谢谢,
皮奥特尔
附言。我也尝试联系这个应用程序的原作者,但该公司甚至不在那里...还尝试猜测一个可选参数,如 -hidden 等,但没有任何运气。