注册表:Shell Open 命令 - 打开多个程序

注册表:Shell Open 命令 - 打开多个程序

我正在尝试通过注册表注册一个 shell 打开命令,并想打开多个程序,因此我尝试这样做:

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\myFile\Shell\Open\Command]
@="cmd /k calc & notepad & exit"

calcnotepad只是一个例子来证明这一点。

如果我这样使用它,计算器和记事本都会打开,但命令提示符仍会打开,直到我关闭记事本。如果我将其更改为cmd /k calc & calc & exit,我会得到 2 个计算器实例,并且命令提示符会按照我的意愿关闭。

为什么它不能与记事本一起使用?

是否有人知道另一种方法,可以使用注册表中的 shell open 命令启动多个程序,而无需命令提示符保持打开状态?

答案1

您可以使用以下命令来执行此操作:

cmd /k start calc & start notepad & exit

因此将您的.reg文件变成:

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\myFile\Shell\Open\Command]
@="cmd /k start calc & start notepad & exit"

运行良好的原因calc(在 Windows 10 中,但在 Windows 7 中不行)是该calc.exe过程启动了一个不同的进程(Calculator.exe)然后退出,从而允许命令继续执行。

但对于 来说情况并非如此notepad.exe,这意味着命令会卡在那里等待notepad.exe关闭。

start命令用于在单独的窗口中启动一个进程,以便cmd可以继续下一步。

相关内容