Python: выполнить команду в подоболочке без интерфейса cmd или скрытого или в фоновом режиме - PullRequest
0 голосов
/ 16 сентября 2010

Я хотел бы знать, как я могу выполнить команду, без появления окна cmd. Мой код на Python и O.S. это Windows7.

Проблемная строка: os.system(pathandarguments)

Программа работает нормально, выполняет заданный путь с аргументами, но я теряю контроль над моей программой, потому что окно моей программы сворачивается, я вижу окно cmd за секунду, а затем моя программа окна не разворачивается.

Я хочу выполнить строковые патандаргументы, не сворачивая главное окно. Я предпочитаю, если это возможно, не показывать окно cmd. Я пробовал разные способы сделать это:

os.system(pathandarguments) = работает нормально, но сворачивает окно моей программы.

os.popen(pathandarguments) = ERROR: CThread::staticThread : Access violation at 0x77498c19: Writing location 0x00000014 (не работает)

subprocess.Popen([pathandarguments], shell=False) = Исключение в onAction скрипта Python (не работает)

Заранее спасибо.

EDIT @martineau, проблема не в том, что я не могу импортировать процесс, пересматривая журнал моего приложения. Я видел, что проблема в процессе импорта в строке 146:

13:42:20 T:4116 M:2156859392  NOTICE: import win32api
13:42:20 T:4116 M:2156859392  NOTICE: ImportError
13:42:20 T:4116 M:2156859392  NOTICE: :
13:42:20 T:4116 M:2156859392  NOTICE: No module named win32api

У меня нет модуля win32api.

1 Ответ

1 голос
/ 16 сентября 2010

Долгое время я использовал модуль Python с открытым исходным кодом для управления процессами, который называется process-python . Статус проекта там говорит: «В своем нынешнем состоянии он активно использовался в коммерческом проекте Komodo IDE ». Он мультиплатформенный, но одной из основных причин, по которой я начал его использовать, было то, что в Windows он будет вызывать процесс без окна консоли. Это очень просто в использовании. Вот тривиальный пример:

import process

p = process.ProcessOpen([eventfilepath]) # open text file with associated program
ignored_exitstatus = p.wait()

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...