Окно CMD свернуто для вызова Popen ()? - PullRequest
1 голос
/ 01 февраля 2011

Я использую Popen () для запуска приложения Windows, и появляется консоль Windows CMD, которая мне нужна для мониторинга стандартного ввода / вывода.Есть ли способ, что это окно CMD может быть свернуто немедленно?Само окно консоли мешает запуску приложения Popen (), потому что оно скрывает видимый рабочий стол.

Я нахожусь на winXP 32 с Python 2.6.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 02 февраля 2011

Если консоль CMD имеет не двусмысленный заголовок, вы можете получить дескриптор и свернуть его с помощью следующего (сразу после запуска процесса):

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

6 для SW_MINIMIZE (См. Документ MSDN для функции ShowWindow () )

Конечно, вы должны добавить соответствующие проверки, такие как ожидание появления окна и т. Д.

0 голосов
/ 01 февраля 2011

Вы меняете расширение вашего файла Python на .pyw ?, с pyw интерпретатор python не отображает консоль Windows, а в отношении stdot / stdin вы можете использовать подпроцесс.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

...