Несколько заметок:
То, что команда отправлена, не означает, что программа принимает эти аргументы или любые другие.
Например:
Я вызвал taskmanager со своей собственной странной командой, и поведение не изменилось:
С точки зрения программирования, любое приложение будет иметь некоторый метод main, в котором можно передавать аргументы . Например, базовое приложение Windows Form C # выглядит примерно так:
private void Form1_Load(object sender, EventArgs e)
{
}
Если я передам несколько забавных аргументов, с приложением ничего не произойдет, но Process Explorer их поймает и отобразит.
Однако если я явно решу обработать их, вы получите взаимодействие с командой.
И все, что мне нужно было сделать, это слегка изменить точку входа в форму:
private void Form1_Load(object sender, EventArgs e)
{
string arguments = Environment.GetCommandLineArgs()[1];
this.Text = arguments;
}
Теперь вернемся к вашему вопросу о том, почему это так:
Если вы обращаетесь к taskmgr.exe из метода ctrl+ alt+ del, вы действительно видите аргумент команды "/ 3". Также, если вы используете ctrl+ shift+, escон передает / 2, и если вы щелкнете правой кнопкой мыши на панели задач и нажмете «Запустить диспетчер задач», показанный переключатель будет / 4.
Все это заставляет меня предположить, что, возможно, Windows что-то нужно знать, или, возможно, она почти реализована для диспетчера задач, о котором мы не знаем. Например, для безопасности в Windows может потребоваться узнать, использовался ли ctrl+ alt+ delдля вызова taskmgr.exe, а не сценария или пользователя. Опять же, чистые спекуляции, но подобные темы заставляют меня думать, что это могла быть хотя бы мысль.
Для печально известного TL; Dr
Чтобы узнать, почему Windows передает эти команды, нам, скорее всего, нужен либо член команды разработчиков Microsoft, либо исходный код. Там не может быть лучшего ответа.
LaunchTM.exe
в%windir%\System32
котором делает его еще более запутанной , так как я не мог понять, на основе моего поиска Google, а его цель существования и то , что это хорошо для в целом.