2

Я пытаюсь зарегистрировать команду открытия оболочки через реестр и хочу открыть более одной программы, поэтому я попробовал это так:

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

calc и notepad - только пример, чтобы продемонстрировать это.

Если я использую его таким образом, калькулятор и Блокнот открываются, но командная строка остается открытой, пока я не закрою Блокнот. Если я изменю его на cmd /k calc & calc & exit , я получу 2 экземпляра калькулятора, и командная строка закрывается, как я хочу.

Почему он не работает с Блокнотом?

Кто-нибудь знает другой способ запуска нескольких программ с помощью команды shell open в реестре, не оставляя командную строку открытой?

1 ответ1

0

Вы можете сделать это, используя следующую команду:

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 мог перейти к следующему шагу.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .