2012-03-21 20 views
0

我的問題涉及到我用來通過命令提示符運行多個程序的python程序。但是,每次調用該程序時,cmd窗口都會顯示並阻礙屏幕,更多煩人的窗口將重點放在cmd窗口(它將cmd窗口置於前面)。我希望能夠最小化運行該程序,以便我可以繼續工作而不會中斷。強制一個程序開始最小化

我使用調用外部程序的代碼是:

os.system('abaqus cae noGUI=results.py') 

如果我改變PY到pyw CMD仍然彈出,但隨後就藏在約一秒和計算的,其餘不顯示向上。但cmd仍然顯示。有沒有辦法讓cmd開始最小化?

我已經試過:

def launchWithoutConsole(command, args): 
    startupinfo = subprocess.STARTUPINFO() 
    startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW 

    return subprocess.Popen('abaqus cae noGUI=results.py', startupinfo=startupinfo, 
       stderr=subprocess.PIPE, stdout=subprocess.PIPE) 

但它掛起...

+0

運行'pythonw yourprogram.py'。或'開始/ MIN Python的yourprogram.py' – khachik 2012-03-21 15:30:57

+0

可能重複的[如何隱藏控制檯窗口在Python?](http://stackoverflow.com/questions/764631/how-to-hide-console-window-in-python ) – bernie 2012-03-21 15:31:21

+1

或者將你的擴展名改爲.pyw – 2012-03-21 15:33:49

回答

1

你有 「PythonW.exe」 節目。它運行一個Python腳本,但沒有控制檯窗口。

c:\> start /MIN python.exe script.py 
0

假設你有win32api爲你的Python,使用win32process.CreateProcess超過進程創建更大的控制權:

如果你真的想要它最小化,而不是隱藏的,可以與運行它。有關使用它的一些方法,請參閱Demos/winprocess.py;這聽起來像你想要dwCreationFlags=CREATE_NO_WINDOWstartupinfo= a PySTARTUPINFO結構與wShowWindow=SW_SHOWMINIMIZED

+0

問題是,它出現['wShowWindow = SW_SHOWMINIMIZED'](http://stackoverflow.com/questions/12520754/python-windows-popen-with-wshowwindow-in-startupinfo-不影響顯示)不起作用。 – martineau 2012-09-23 18:28:40