
Der Titel sagt alles. Ich möchte eine Tastenkombination unter Windows 7 konfigurieren, die dem Senden des „Signals 9“ an ein Programm unter UNIX entspricht, ohne dass der Befehl abgefangen werden kann. Einige Programme lassen sich mit Alt+F4 nicht schließen, andere zeigen eine Eingabeaufforderung an, um Dateiänderungen zu speichern oder zu verwerfen.
Spezifikationen:
- Tastenkombination, die bei allen nicht systemkritischen Prozessen zu 100 % funktioniert.
- Das aktive Programm muss sofort nach Erhalt der Tastenkombination geschlossen werden. Der Speicherplatz und die Systemressourcen werden so schnell freigegeben, wie das Betriebssystem dies zulässt, einschließlich aller Datei- und Pipe-Handles. Wenn das Programm gerade dabei war, eine Datei zu schreiben, wird das Programm trotzdem abgebrochen und die Datei kann beschädigt sein.
- Das Programm darf den Abschaltbefehl in keiner Weise umgehen. Sofortiges Abschalten bedeutet sofortiges Abschalten, Ausreden sind nicht erlaubt.
Ich würde eine Lösung stark bevorzugen, die keine Tools von Drittanbietern benötigt. Diese sind jedoch akzeptabel, wenn es keine andere Möglichkeit gibt, dies zu tun.
Antwort1
Wenn ein Programm sich schlecht verhält, akzeptiert es möglicherweise überhaupt keine Tastendrücke, so dass es keine Möglichkeit gibt,Garantiedass die üblichen Windows-Tastenkombinationen zum Beenden ( Alt+ F4oder Ctrl+ C) funktionieren würden. Wenn diese Tastenanschläge also nicht funktionieren, müssen Sie ein anderes Tool zum Beenden der Anwendung verwenden.
Wenn Sie den Vorgang abbrechen möchtensofort, verwendenWindowsTaskkilloderSysInternals (jetzt Teil von Microsoft)PsKill. Richten Sie zunächst eine CMD-Eingabeaufforderung ein (Terminal für Unix-Benutzer)im Vorausmit dem Namen der Anwendung oder der Prozess-ID, zB
taskkill /F /IM notepad.exe
Dies würde eine gewaltsame Beendigung bedeutenNotizblockwenn Sie Enteram Ende der Zeile ankommen (ergo ein Tastendruck).
Wenn Sie nicht im Voraus wissen, welcher Prozess gerade außer Kontrolle gerät, dann verwenden Sie dieTaskmanager(Systemmonitor, für Unix-Benutzer) oderSysinternals *Prozess-ExplorerCtrl, das mit + Shift++ gestartet werden kann Esc, identifizieren Sie den Prozess, klicken Sie mit der rechten Maustaste darauf und beenden Sie ihn. Obwohl dies nicht mit einem einzigen Tastendruck möglich ist, ist dies die Methode, die ich bevorzuge.
Da Windows in jedem Fall präemptives Multitasking verwendet, sollten beim Beenden eines Prozesses (zumindest theoretisch) alle Ressourcen freigegeben werden.
AchtungEinige Prozessekann nichtbeendet werden, auch wenn der Benutzer es als Administrator ausführt, wie z. B. ein geschützter Antivirenprozess. Zuerst muss der Schutzmechanismus ausgeschaltet werden. Andere, wie z. B. Windows-Dienste und Explorer, können nach der Beendigung neu gestartet werden.