Kilka uwag:
To, że polecenie zostało wysłane, nie oznacza, że program akceptuje te argumenty lub jakiekolwiek inne.
Na przykład:
Zadzwoniłem do menedżera zadań z moim dziwnym poleceniem, a zachowanie się nie zmieniło:
Z punktu widzenia podstawowego programowania każda aplikacja będzie miała jakąś główną metodę, w której można przekazywać argumenty . Na przykład podstawowa aplikacja Windows Form C # wygląda mniej więcej tak:
private void Form1_Load(object sender, EventArgs e)
{
}
Jeśli przekażę jakieś śmieszne argumenty, aplikacja nic się nie dzieje, ale Process Explorer je złapie i wyświetli.
Jeśli jednak wyraźnie zdecyduję się je obsłużyć, uzyskasz interakcję z polecenia.
I wszystko, co musiałem zrobić, to nieznacznie zmienić punkt wejścia formularza:
private void Form1_Load(object sender, EventArgs e)
{
string arguments = Environment.GetCommandLineArgs()[1];
this.Text = arguments;
}
Wróćmy teraz do pytania, dlaczego tak jest:
Jeśli uzyskujesz dostęp do taskmgr.exe z metody ctrl+ alt+ del, rzeczywiście widzisz argument polecenia „/ 3”. Również jeśli użyjesz ctrl+ shift+, escto przejdzie / 2 i jeśli klikniesz prawym przyciskiem myszy pasek zadań i klikniesz „Uruchom Menedżera zadań”, pokazany przełącznik to / 4.
Wszystko to prowadzi mnie do wniosku, że być może Windows musi coś wiedzieć, a może został już prawie zaimplementowany w Menedżerze zadań, o którym nie wiemy. Na przykład zabezpieczenia w systemie Windows mogą chcieć wiedzieć, czy do wywołania taskmgr.exe użyto ctrl+ alt+, dela nie skrypt lub użytkownik. Ponownie, czysta spekulacja, ale takie wątki sprawiają, że myślę, że mogła to być przynajmniej myśl.
Dla niesławnego tl; dr
Aby wiedzieć, dlaczego system Windows przekazuje te polecenia, prawdopodobnie potrzebujemy członka zespołu programistów Microsoft lub kodu źródłowego. Nie może być lepszej odpowiedzi.
LaunchTM.exe
w%windir%\System32
co czyni go jeszcze bardziej mylące, ponieważ nie mogłem zorientować się, w oparciu o moje google, jak również, jego celem istnienia i to, co jest dobre w ogóle.