我在 Windows 上使用子进程来启动 IrfanView 以使用命令行开关将 TIFF 文件转换为 PDF。
我正在处理几个 TIFF 文件夹,并为每个文件调用命令。保存 PDF 时,IrfanView 会显示一个标题为“保存 PDF”的对话框以显示进度。
该对话框仅显示片刻,但会抓住窗口焦点,因此当我的脚本在后台运行时无法使用计算机。我尝试使用subprocess.STARTUPINFO
值来隐藏窗口,虽然现在隐藏了对话框,但它似乎仍然抓住了焦点。
下面是我调用 IrfanView 应用程序的方式。
startup_info = subprocess.STARTUPINFO
startup_info.dwFlags = 1
startup_info.wShowWindow = 0
subprocess.call(['i_view32.exe', 'c:/input.tif', '/convert=c:/output.pdf'], startupinfo=startup_info)
有谁知道启动应用程序的方法,它的窗口被隐藏并且不窃取焦点?我很乐意尝试一些事情——如果存在这样的程序,即使是随后调用 IrfanView 的包装应用程序也会这样做。我只在 Windows 上需要这个,所以我不需要跨平台的解决方案。
我知道我也可以使用 GraphicsMagick 或类似的东西,但是 IrfanView 在匹配输入文件的压缩格式方面做得更好,所以理想情况下我想使用 IrfanView 让它工作。