[英]Create Windows Explorer shortcut with Run As Administrator
[英]Run a shortcut under windows
以下内容不起作用,因为它不会等到该过程完成:
import subprocess
p = subprocess.Popen('start /WAIT /B MOZILL~1.LNK', shell=True)
p.wait()
知道如何运行快捷方式并等待子进程返回吗?
编辑:最初我是在帖子中没有shell选项的情况下尝试此操作,这导致Popen失败。 实际上, start
不是可执行文件,而是shell命令。 感谢吉姆,这是固定的。
您将需要调用一个外壳程序才能使subprocess选项起作用:
p = subprocess.Popen('start /B MOZILL~1.LNK', shell=True)
p.wait()
但是,这仍然会立即退出(请参阅@R。Bemrose)。
如果p.pid
包含正确的pid(我在Windows上不确定),则可以使用os.waitpid()
等待程序退出。 否则,您可能需要使用一些win32 com魔术。
开始启动程序后,cmd.exe就会终止。 该行为已记录(在开始/?中):
如果启用了命令扩展,则通过命令行或START命令进行的外部命令调用将发生如下变化:
...
当执行的应用程序是32位GUI应用程序时,CMD.EXE在返回命令提示符之前不会等待该应用程序终止。 如果在命令脚本中执行,则不会发生此新行为。
我不确定/ wait标志如何影响它。
注意:我只是在添加Jim的答复,只是一个小技巧。 使用“ WAIT”选项启动怎么办?
p = subprocess.Popen('start /B MOZILL~1.LNK /WAIT', shell=True)
p.wait()
这应该工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.