Ich habe festgestellt , dass Windows als Befehl aufruft, wenn ich Ctrl+ Alt+ drücke Delund auf Task-Manager taskmgr.exe /3
klicke. Mehrere Websites behaupten, der Task-Manager habe keine Befehlszeilenargumente.
Warum bringt Windows dieses Argument an?
LaunchTM.exe
in%windir%\System32
dem kann nicht herausfinden es noch verwirrender als ich macht, auch auf meiner Google - Suche zu stützen, dessen Zweck der Existenz und das, was es ist gut für die im Allgemeinen.LaunchTM.exe
in Windows 7, du bist auf Windows 8, denke ich. Warum nicht gleich hier im Superuser eine neue Frage dazu erstellen ? ;)Antworten:
Analyse
Anscheinend ist es kein dokumentiertes Verhalten. Ich habe einige Tests durchgeführt und meine Ergebnisse notiert:
Klicken Sie mit der rechten Maustaste auf die Taskleiste, und klicken Sie auf Task-Manager starten .
Drücken Sie Ctrl+ Shift+ Esc.
Drücken Sie Ctrl+ Alt+ Delund klicken Sie auf Task-Manager starten .
Starten Sie einen Task-Manager ohne Berechtigungen, und klicken Sie auf die Schaltfläche Prozesse von allen Benutzern anzeigen.
Geben oder fügen Sie
taskmgr.exe
in die Suchleiste des Startmenüs ein und drücken Sie Enter; Drücken Sie Win+ R, geben Sie etwastaskmgr.exe
in das Textfeld ein oder fügen Sie es ein, und drücken Sie Enter; Navigieren Sie zu demSystem32
Ordner und doppelklicken Sie auf dietaskmgr.exe
ausführbare Datei. Starten Sie das Systemkonfigurationsprogramm (msconfig.exe
), klicken Sie auf die Werkzeuge Registerkarte, wählen Sie aus der Liste den Task - Manager Element, und klicken Sie auf Starten .Öffnen Sie eine Eingabeaufforderung, geben Sie oder fügen Sie ein
taskmgr.exe
, und drücken Sie Enter.Bemerkungen
Ähnlich lief es in der Entwicklungsphase von Windows 8 bis zur Release Preview. Windows Vista und frühere Betriebssysteme sind nicht betroffen.
Die ausführbare Datei importiert einige API- Funktionen (nämlich
GetCommandLineW
undCommandLineToArgvW
), mit denen Befehlszeilenargumente abgerufen und analysiert werden.Das manuelle Starten des Programms mit einem der oben genannten Argumente scheint keine nennenswerten Auswirkungen zu haben.
Wenn ich eine fundierte Vermutung anstellen müsste, würde ich sagen, dass der numerische Parameter ein interner Startindikator sein soll, der möglicherweise für Debugging-Zwecke verwendet und dann zurückgelassen wird.
quelle
taskmgr /anything /startup
funktioniert also/startup
als zweites Argument.Ein paar Anmerkungen:
Nur weil ein Befehl gesendet wird, bedeutet dies nicht, dass ein Programm diese oder andere Argumente akzeptiert.
Zum Beispiel:
Ich rief den Taskmanager mit meinem eigenen seltsamen Befehl an und das Verhalten änderte sich nicht:
Unter dem Gesichtspunkt der Grundprogrammierung verfügt jede Anwendung über eine Art Hauptmethode, mit der Argumente übergeben werden können . Eine grundlegende Windows Form C # -Anwendung sieht beispielsweise folgendermaßen aus:
Wenn ich ein paar lustige Argumente eingebe, passiert nichts mit der Anwendung, aber Process Explorer fängt sie ab und zeigt sie an.
Wenn ich mich jedoch ausdrücklich dafür entscheide, werden Sie vom Befehl eine Interaktion erhalten.
Und alles, was ich tun musste, war den Einstiegspunkt des Formulars leicht zu ändern:
Nun zurück zu Ihrer Frage, warum es dort ist:
Wenn Sie über die ctrl+ alt+ del-Methode auf taskmgr.exe zugreifen, wird in der Tat das Befehlsargument "/ 3" angezeigt . Auch wenn Sie ctrl+ shift+ verwenden esc, passiert es / 2 und wenn Sie mit der rechten Maustaste auf die Taskleiste klicken und auf "Task-Manager starten" klicken, ist der gezeigte Schalter / 4.
All dies lässt mich annehmen, dass Windows möglicherweise etwas wissen muss oder dass es fast für den Taskmanager implementiert wurde, von dem wir nichts wissen. Beispielsweise möchte die Sicherheit in Windows möglicherweise wissen, ob ctrl+ alt+ delzum Aufrufen von taskmgr.exe und nicht für ein Skript oder einen Benutzer verwendet wurde. Auch hier lassen reine Spekulationen, aber solche Themen mich denken, dass es zumindest ein Gedanke gewesen sein könnte.
Für den berüchtigten tl; dr
Um zu wissen, warum Windows diese Befehle übergibt, benötigen wir wahrscheinlich entweder ein Mitglied des Microsoft-Entwicklungsteams oder den Quellcode. Es könnte keine bessere Antwort geben.
quelle