Я заметил, когда я нажимаю Ctrl+ Alt+ Delи нажимаю Диспетчер задач, Windows вызывает taskmgr.exe /3
как команду. Некоторые веб-сайты утверждают, что диспетчер задач не имеет аргументов командной строки.
Почему Windows присоединяет этот аргумент?
Я заметил, когда я нажимаю Ctrl+ Alt+ Delи нажимаю Диспетчер задач, Windows вызывает taskmgr.exe /3
как команду. Некоторые веб-сайты утверждают, что диспетчер задач не имеет аргументов командной строки.
Почему Windows присоединяет этот аргумент?
LaunchTM.exe
в%windir%\System32
котором делает его еще более запутанной , так как я не мог понять, на основе моего поиска Google, а его цель существования и то , что это хорошо для в целом.LaunchTM.exe
в Windows 7, вы на Windows 8, я думаю. Почему бы не создать новый вопрос об этом здесь на суперпользователе? ;)Ответы:
Анализ
Очевидно это не задокументированное поведение. Я сделал несколько тестов и отметил мои выводы:
Щелкните правой кнопкой мыши панель задач и выберите « Запустить диспетчер задач» .
Нажмите Ctrl+ Shift+ Esc.
Нажмите Ctrl+ Alt+ Delи нажмите Запустить диспетчер задач .
Запустите диспетчер задач без повышенных прав и нажмите кнопку « Показать процессы от всех пользователей» .
Введите или вставьте
taskmgr.exe
в строку поиска меню «Пуск» и нажмите Enter; нажмите Win+ R, введите или вставьтеtaskmgr.exe
в текстовое поле и нажмите Enter; перейдите вSystem32
папку и дважды щелкнитеtaskmgr.exe
исполняемый файл; запустите утилиту настройки системы (msconfig.exe
), перейдите на вкладку « Инструменты », выберите элемент «Диспетчер задач» из списка и нажмите « Запустить» .Откройте командную строку, введите или вставьте
taskmgr.exe
и нажмите Enter.замечания
Аналогичным образом все работало на этапе разработки Windows 8 вплоть до выпуска Release Preview. Windows Vista и более ранние операционные системы не подвержены изменениям.
Исполняемый файл импортирует несколько функций API (а именно
GetCommandLineW
иCommandLineToArgvW
), которые используются для получения и анализа аргументов командной строки.Ручной запуск программы с использованием любого из приведенных выше аргументов, кажется, не имеет заметного эффекта.
Если бы мне пришлось сделать обоснованное предположение, я бы сказал, что числовой параметр должен был быть внутренним индикатором запуска, возможно, использовался для целей отладки и затем оставлялся позади.
источник
taskmgr /anything /startup
работает, так/startup
как второй аргумент.Несколько заметок:
То, что команда отправлена, не означает, что программа принимает эти аргументы или любые другие.
Например:
Я вызвал taskmanager со своей собственной странной командой, и поведение не изменилось:
С точки зрения программирования, любое приложение будет иметь некоторый метод main, в котором можно передавать аргументы . Например, базовое приложение Windows Form C # выглядит примерно так:
Если я передам несколько забавных аргументов, с приложением ничего не произойдет, но Process Explorer их поймает и отобразит.
Однако если я явно решу обработать их, вы получите взаимодействие с командой.
И все, что мне нужно было сделать, это слегка изменить точку входа в форму:
Теперь вернемся к вашему вопросу о том, почему это так:
Если вы обращаетесь к taskmgr.exe из метода ctrl+ alt+ del, вы действительно видите аргумент команды "/ 3". Также, если вы используете ctrl+ shift+, escон передает / 2, и если вы щелкнете правой кнопкой мыши на панели задач и нажмете «Запустить диспетчер задач», показанный переключатель будет / 4.
Все это заставляет меня предположить, что, возможно, Windows что-то нужно знать, или, возможно, она почти реализована для диспетчера задач, о котором мы не знаем. Например, для безопасности в Windows может потребоваться узнать, использовался ли ctrl+ alt+ delдля вызова taskmgr.exe, а не сценария или пользователя. Опять же, чистые спекуляции, но подобные темы заставляют меня думать, что это могла быть хотя бы мысль.
Для печально известного TL; Dr
Чтобы узнать, почему Windows передает эти команды, нам, скорее всего, нужен либо член команды разработчиков Microsoft, либо исходный код. Там не может быть лучшего ответа.
источник