我在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來實現它。
'shell = False'請參閱http://docs.python.org/library/subprocess.html#popen-constructor –
謝謝,但這沒有什麼區別。 'shell'在默認情況下被設置爲'False'。 –
Windows允許您創建第二個桌面並在那裏啓動子進程。我不知道你是否可以用Python調用必要的API。 –