我使用Popen()來啓動一個Windows應用程序,並且彈出一個Windows CMD控制檯,我需要監視標準輸入/輸出。有沒有辦法可以立即將這個CMD窗口最小化?控制檯窗口本身干擾Popen()啓動的應用程序,因爲它會遮擋可見桌面。爲Popen()調用最小化CMD窗口?
我在使用Python 2.6的winXP 32上。
謝謝!
我使用Popen()來啓動一個Windows應用程序,並且彈出一個Windows CMD控制檯,我需要監視標準輸入/輸出。有沒有辦法可以立即將這個CMD窗口最小化?控制檯窗口本身干擾Popen()啓動的應用程序,因爲它會遮擋可見桌面。爲Popen()調用最小化CMD窗口?
我在使用Python 2.6的winXP 32上。
謝謝!
如果CMD控制檯具有非ambiquous標題,你可以得到它的句柄,並與下面的(進程已經啓動剛過)最小化:
import win32gui
handle = win32gui.FindWindow(None, cmd_window_title)
win32gui.ShowWindow(handle, 6)
6是SW_MINIMIZE
(見MSDN doc for the ShowWindow() function)
當然,你應該增加相應的檢查,像等待出現窗口等
你改變你的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.communicate
http://docs.python.org/library/subprocess.html#popen-objects
你開始從CMD控制檯應用程序?在這種情況下,不應該打開新的控制檯窗口... – CharlesB 2011-02-01 18:07:30
編號該進程由另一個應用程序觸發。 – reckoner 2011-02-01 22:49:35