Я хочу открыть проводник Windows и выбрать определенный файл. Это API: explorer /select,"PATH"
. Поэтому в результате получается следующий код (с использованием python 2.7):
import os
PATH = r"G:\testing\189.mp3"
cmd = r'explorer /select,"%s"' % PATH
os.system(cmd)
Код работает нормально, но когда я переключаюсь в режим без оболочки (с pythonw
), перед запуском проводника на мгновение появляется черное окно оболочки.
Этого следует ожидать от os.system
. Я создал следующую функцию для запуска процессов без создания окна:
import subprocess, _subprocess
def launch_without_console(cmd):
"Function launches a process without spawning a window. Returns subprocess.Popen object."
suinfo = subprocess.STARTUPINFO()
suinfo.dwFlags |= _subprocess.STARTF_USESHOWWINDOW
p = subprocess.Popen(cmd, -1, stdout=subprocess.PIPE, stderr=subprocess.PIPE, startupinfo=suinfo)
return p
Это отлично работает для исполняемых файлов оболочки без графического интерфейса. Однако он не запустит explorer.exe
.
Как я могу запустить процесс, не порождая черного окна раньше?