Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Process Killer
AyrA
myCSharp.de - Member

Avatar #avatar-3186.png


Dabei seit:
Beiträge: 64
Herkunft: Schweiz

Themenstarter:

Process Killer

beantworten | zitieren | melden

Dieses Tool tötet Prozesse. Entstanden aus Faulheit den Taskmanager zu öffnen oder um Programme zu beenden, die keine Schliessen Schaltfläche haben. kann sich nützlich erweisen um beim Debuggen hängende prozesse schnell zu beenden, oder wenn Skype mal wieder in nem Update nicht rafft, dass [X] nicht das selbe ist wie [_]. (Wenns denn wenigstens umschaltbar wäre)

Nach dem Starten erscheint ein Fenster, welches die ID, den Fenstertitel und den Pfad zur Exe des aktuell fokusierten Prozesses anzeigt. Durch klicken auf den Pfad kann auch gleich ein Explorerfenster gestartet werden, welches den Ordner mit der exe anzeigt.
Es sind drei Buttons vorhanden, mit denen ein Prozess (nebst den Hotkeys) ebenfalls geschlossen, geschlossen und getötet oder sofort getötet werden kann.
Durch Minimieren verwandelt sich das Programm in ein Tray Icon.

Der aktive Prozess kann auf drei Arten getötet werden:
  1. [ALT]+[BACKSPACE]. Sendet ein close Signal an den Prozess, damit er sich regulär beenden kann (inklusive Speicherroutinen)
  2. [CTRL]+[ALT]+[BACKSPACE]. Dies ruft zuerst die selbe Funktion wie ohne shift auf, sollte der Prozess nach 5 Sekunden nicht regulär beendet worden sein, so wird er getötet (mit einer Waffe von hinten). Spass beiseite, sollte der Prozess jedoch auf eine Eingabe vom Benutzer warten, wird er nicht automatisch getötet. sondern der Benutzer muss hierfür eine Bestätigung geben. Siehe Screenshot.
  3. [SHIFT]+[CTRL]+[ALT]+[BACKSPACE] Tötet den aktiven prozess sofort. Muss zweimal betätigt werden!

Download
Source: https://github.com/AyrA/ProcessKiller
EXE (signiert): https://github.com/AyrA/ProcessKiller/tree/master/ProcKiller/bin/Release

Globaler Hotkey
Meine Implementation des globalen Hotkeys mit Erklärung findet sich bei den Snippets

Der Screenshot zeigt den Versuch Notepad++ zu beenden, wenn noch eine Eingabe erforderlich ist. Das kleine Fenster erlaubt es den Prozess mittels dem "Kill anyway" button sofort zu töten, oder mit "Leave running" in ruhe zu lassen. Wird der Prozess anderweitig beendet, verschwindet das Fenster von selbst.
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von AyrA am .
Attachments
AyrA.ch
Free Stuff

If you can read this you tried to select my Signature or have another Theme installed
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Moderationshinweis von herbivore (30.07.2013 - 07:58:41):

Dieser Beitrag bezieht sich auf die erste Version. Im Startbeitrag ist jetzt die aktuelle Version beschrieben, die die Vorschläge bereits berücksichtigt.


Hallo AyrA,

vorne weg: ich bin immer wieder positiv überrascht, wieviele Tools du aus den verschiedensten Bereichen postest. Nur weiter so.

Zum Process Killer: Ich fände es gut, wenn es in dem Process-Killer-Haupt-Fenster zwei Buttons gäbe, um den aktiven Prozess zu schließen bzw. killen. Vielleicht sogar drei. Einen für die Close-, einen für Close/Wait/Kill- und einen für eine Kill-Immediately-Funktionalität. Letzteres ist praktisch, wenn man öfter einen Prozess abschießen muss, von dem man aus Erfahrung weiß, dass sowieso nur ein hartes Kill wirkt.

Gegen die Tastenkombinationen als zusätzliche Alternative zu den Buttons habe ich nichts.

In dem Process-Killer-Hilfs-Fenster finde ich den Button "Abort" verwirrend bzw. mehrdeutig. Ich vermute, dass damit das Process-Killer-Hilfs-Fenster und vielleicht sogar das Process-Killer-Haupt-Fenster geschlossen wird. Man könnte es aber auch so verstehen, dass der aktive Prozess bzw. dessen Warten auf Input abgebrochen werden soll. Leider habe ich keine wirkliche Alternative. "Close" wäre genauso mehrdeutig. "Don't Kill" wäre eine negative Formulierung, die nichts darüber sagt, was passiert, wenn man den Button drückt. Vielleicht lässt du den Button ganz weg, denn es gibt ja immer noch das 'X', wenn man das Process-Killer-Hilfs-Fenster schließen will, ohne den aktiven Prozess zu killen.

herbivore
private Nachricht | Beiträge des Benutzers
AyrA
myCSharp.de - Member

Avatar #avatar-3186.png


Dabei seit:
Beiträge: 64
Herkunft: Schweiz

Themenstarter:

beantworten | zitieren | melden

Ich kann das mal so umsetzen.

Des weiteren ist mir eine Kuriosität aufgefallen.
An dem Computer wo ich jetzt gerade sitze, kann ich Prozesse mit dem Hotkey nur beenden, wenn ich sie in der folgenden Reihenfolge drücke: (SHIFT) -> CTRL -> ALT.
Beim debugging (F5) funktioniert es egal in welcher Reihenfolge, beim Ausführen (CTRL+F5) muss die Reihenfolge beachtet werden. Keine Ahnung woher das kommt.

Die Hotkeys schlage ich folgendermassen vor:
Nach wie vor [BS] um den Prozess zu töten. Fand ich irgendwie praktisch.
Dann werden die Umschalttasten aufgebaut:
[ALT] - Schliessen
[CTRL]+[ALT], wie alt, aber dann terminieren.
[SHIFT]+[CTRL]+[ALT], sofort terminieren.


Edit: Ist ALT+BACKSPACE irgendwie gesperrt in Windows?
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von AyrA am .
AyrA.ch
Free Stuff

If you can read this you tried to select my Signature or have another Theme installed
private Nachricht | Beiträge des Benutzers
EifelYeti
myCSharp.de - Member

Avatar #avatar-3408.jpeg


Dabei seit:
Beiträge: 66
Herkunft: Eifel

beantworten | zitieren | melden

Also so wie ich das weis ist ALT + BACKSPACE unter Windows wie STRG + Z.

Ich weis allerdings nicht ob das dann auch gesperrt ist
Rekursion
(lat. , die) siehe Rekursion
private Nachricht | Beiträge des Benutzers
AyrA
myCSharp.de - Member

Avatar #avatar-3186.png


Dabei seit:
Beiträge: 64
Herkunft: Schweiz

Themenstarter:

beantworten | zitieren | melden

Update
Neue Version veröffentlicht (Links bleiben die selben)

Hotkeys
Globale Keyboard Hooks zeichnen nicht alles auf (z.B. [ALT]+[BACKSPACE] geht nicht) und andere Probleme tauchten auf.
Ich konnte nun die Hotkeys integrieren. Anstatt eines globalen Keyboard Hooks wurde die Hotkey Funktion von Windows verwendet. Die Klasse ist in den Snippets bereit gestellt, da sie auch für Anfänger tauglich ist. //Link im ersten Post.

Sicherheit
Der Hotkey, um Prozesse sofort zu terminieren muss nun zweimal betätigt werden.

Race condition
Es gab eine race condition in einem Timer, die gelöst wurde.
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von AyrA am .
AyrA.ch
Free Stuff

If you can read this you tried to select my Signature or have another Theme installed
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Vielen Dank!
private Nachricht | Beiträge des Benutzers
AyrA
myCSharp.de - Member

Avatar #avatar-3186.png


Dabei seit:
Beiträge: 64
Herkunft: Schweiz

Themenstarter:

beantworten | zitieren | melden

Kleine Notitz am Rande:
Wird das Close Signal an den Explorer gesendet, werden Fenster nur geschlossen, wenn in den Ordneroptionen aktiviert ist, dass ein explorer.exe Prozess für jedes Ordnerfenster erstellt wird. Ist dies nicht so, wird lediglich der "Herunterfahren" Dialog angezeigt. Den Explorer richtig beenden geht (in Vista und neuer) folgendermassen:
Startmenü öffnen, [CTRL]+[SHIFT]+Rechtsklick auf eine freie Fläche im Startmenü, "Explorer beenden"
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von AyrA am .
AyrA.ch
Free Stuff

If you can read this you tried to select my Signature or have another Theme installed
private Nachricht | Beiträge des Benutzers