Desidero aprire Esplora risorse e selezionare un file specifico. Questa è l'API: explorer /select,"PATH"
. Quindi con conseguente il seguente codice (usando pitone 2.7):Avvia una procedura GUI senza generare una finestra shell nera
import os
PATH = r"G:\testing\189.mp3"
cmd = r'explorer /select,"%s"' % PATH
os.system(cmd)
Il codice funziona bene, ma quando passo modalità non-shell (con pythonw
), viene visualizzata una finestra guscio nero per un attimo prima l'esploratore è lanciato.
Questo è normale con os.system
. Ho creato la seguente funzione per avviare processi di deposizione delle uova, senza una finestra:
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
Questo funziona bene per gli eseguibili shell senza GUI. Tuttavia non avvierà explorer.exe
.
Come posso avviare il processo senza generare una finestra nera prima?
sorprendente: ho provato con WinExec e ShellExec su codice C/C++ e dà il mio lo stesso comportamento. – lucasg