Кілька приміток:
Тільки тому, що команда надіслана, не означає, що програма приймає ці аргументи чи будь-які.
Наприклад:
Я зателефонував менеджеру завдань за допомогою своєї незвичайної команди, і поведінка не змінилася:
З точки зору основної програми програмування, будь-яка програма має мати основний метод, який може передавати аргументи . Наприклад, базовий додаток 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 має знати, або, можливо, було майже реалізовано для Taskmanager, про який ми не знаємо. Наприклад, безпека в Windows може знати, чи використовувався ctrl+ alt+ delдля виклику taskmgr.exe, а не сценарій чи користувач. Знову-таки, чисті міркування, але такі теми змушують мене думати, що це могло бути хоча б думкою.
Для сумнозвісного тл; д-ра
Щоб знати, чому Windows передає ці команди, нам, ймовірно, потрібен або член команди розробників Microsoft, або вихідний код. Кращої відповіді може не бути.
LaunchTM.exe
в%windir%\System32
якому робить його ще більш заплутаною , оскільки я не міг зрозуміти, на основі мого пошуку Google, а його мета існування і то , що це добре для в цілому.