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
これは、GUIのないシェル実行可能ファイルで正常に機能します。ただし、起動しませんexplorer.exe
。
以前に黒いウィンドウを生成せずにプロセスを起動するにはどうすればよいですか?