2011-02-01 104 views
1

我使用Popen()來啓動一個Windows應用程序,並且彈出一個Windows CMD控制檯,我需要監視標準輸入/輸出。有沒有辦法可以立即將這個CMD窗口最小化?控制檯窗口本身干擾Popen()啓動的應用程序,因爲它會遮擋可見桌面。爲Popen()調用最小化CMD窗口?

我在使用Python 2.6的winXP 32上。

謝謝!

+0

你開始從CMD控制檯應用程序?在這種情況下,不應該打開新的控制檯窗口... – CharlesB 2011-02-01 18:07:30

+0

編號該進程由另一個應用程序觸發。 – reckoner 2011-02-01 22:49:35

回答

2

如果CMD控制檯具有非ambiquous標題,你可以得到它的句柄,並與下面的(進程已經啓動剛過)最小化:

import win32gui 
handle = win32gui.FindWindow(None, cmd_window_title) 
win32gui.ShowWindow(handle, 6) 

6是SW_MINIMIZE(見MSDN doc for the ShowWindow() function

當然,你應該增加相應的檢查,像等待出現窗口等

0

你改變你的Python文件.pyw?與pyw Python解釋器不顯示Windows控制檯的擴展,以及關於stdot /標準輸入您可以使用subprocess.PIPE與

import subprocess 
cmd = subprocess.Popen('program.exe', shell=true, 
         stdout=subprocess.PIPE, stdin=subprocess.PIPE) 
#read stdout 
print cmd.stdout.read() 
#write stdin 
cmd.stdin.write('DATA') 

或使用Popen.communicatehttp://docs.python.org/library/subprocess.html#popen-objects