2012-03-21 33 views
0

私の質問は、コマンドプロンプトでプログラムを複数回実行するために使用しているPythonプログラムに関するものです。ただし、プログラムが呼び出されるたびに、cmdウィンドウが表示され、画面が遮られ、より煩わしいウィンドウがcmdウィンドウ(cmdウィンドウが前面に表示されます)にフォーカスします。私は中断されることなく作業を続けることができるように、プログラムを最小限にすることができるようにしたいと思います。プログラムを最小限に抑えるように強制する

私は外部プログラムを呼び出すために使用しているコードは次のとおりです。私はCMD pywするPYを変更する場合は、まだアップをポップが、その後約1秒で隠し、計算の残りの部分は表示されません

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

アップ。しかし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

+0

[コンソールウィンドウを非表示にする方法は?](http://stackoverflow.com/questions/764631/how-to-hide-console-window-in-python ) – bernie

+1

拡張子を.pywに変更する –

答えて

1

あなたが "PythonW.exe" プログラムを持っています。これはPythonスクリプトを実行しますが、コンソールウィンドウは使用しません。

あなたが本当にそれを最小化したい場合は、隠されていない、あなたがそれを実行することができます:

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

は、プロセスの作成をより細かく制御するためにwin32process.CreateProcessを使用し、あなたのPython用win32apiを持っていると仮定すると。いくつかの使い方については、Demos/winprocess.pyを参照してください。 dwCreationFlags=CREATE_NO_WINDOWまたはstartupinfo=PySTARTUPINFO構造のいずれかをwShowWindow=SW_SHOWMINIMIZEDとしたいと思うようです。

+0

問題は、['wShowWindow = SW_SHOWMINIMIZED'](http://stackoverflow.com/questions/12520754/python-windows-popen-with-wshowwindow-in-startupinfo-影響を受けない表示)が機能しません。 – martineau

関連する問題