1

我正在使用 Python 3.3。我试过这个:

# beginning and ending quotes are to compensate for Microsoft kludge
emuleappfile = '"'+os.environ['ProgramFiles']+'\\eMule\\emule.exe'+'"'
os.system(emuleappfile)
# vvv beginning and ending quotes are to compensate for Microsoft kludge
vuzeappfile = '"'+os.environ['ProgramFiles']+'\\Vuze\\azureus.exe'+'"'
os.system(vuzeappfile )

还有这个

# beginning and ending quotes are to compensate for Microsoft kludge
emuleappfile = '"'+os.environ['ProgramFiles']+'\\eMule\\emule.exe'+'"'
itran = os.system(emuleappfile)
# vvv beginning and ending quotes are to compensate for Microsoft kludge
vuzeappfile = '"'+os.environ['ProgramFiles']+'\\Vuze\\azureus.exe'+'"'
itran = os.system(vuzeappfile)

emule 会打开,但程序直到 emule 关闭后才会打开 vuze。gr。

4

2 回答 2

2

使用subprocess.Popen. 在 Windows 上,这调用 Win32 API 函数CreateProcess

http://docs.python.org/3/library/subprocess

import os
import subprocess

emuleappfile = os.path.join(os.environ['ProgramFiles'], 'eMule', 'emule.exe')
vuzeappfile = os.path.join(os.environ['ProgramFiles'], 'Vuze', 'azureus.exe')
proc_emule = subprocess.Popen([emuleappfile])
proc_vuze = subprocess.Popen([vuzeappfile])

编辑:

Popen 公开了一些STARTUPINFO用于设置进程和窗口属性的结构字段。请参阅子流程文档中的Windows Popen Helpers部分。例如,使用以下命令在隐藏窗口中启动 vuze,这也是 Win32 ShowWindow的窗口默认状态:

si = subprocess.STARTUPINFO()
si.dwFlags = subprocess.STARTF_USESHOWWINDOW
si.wShowWindow = subprocess.SW_HIDE
proc_vuze = subprocess.Popen([vuzeappfile], startupinfo=si)
于 2013-03-31T12:05:34.533 回答
0

os.system(''.join(['start "', os.environ['ProgramFiles'], '\\eMule\\emule.exe', '"']))(特别是该start部分)将在单独的窗口中运行可执行文件,因此不会阻止当前窗口。

于 2013-03-31T12:09:14.050 回答