Hallo,
kann Eventghost auch Programme richtig beenden?
Am liebsten nat├╝rlich so, als w├╝rde man das Programm auf konventionelle Art beenden und nicht "killen"
Oder gibt es andere Software daf├╝r, die man mit EventGhost kombinieren kann?
Das wäre spitzenmässig!
Eggert
Notice: This forum has been recovered from an old backup, so some content, links, and dates may be outdated. The forum is currently read-only while we restore sign-in and registration functionality. Details
If you find this forum valuable and would like to help keep it online, donations to help cover hosting and domain costs are greatly appreciated, but never expected. You can support the forum through Buy Me a Coffee or Ko-fi. Thank you for helping preserve the EventGhost community.
If you find this forum valuable and would like to help keep it online, donations to help cover hosting and domain costs are greatly appreciated, but never expected. You can support the forum through Buy Me a Coffee or Ko-fi. Thank you for helping preserve the EventGhost community.
Programme beenden
- Bitmonster
- Site Admin
- Posts: 2239
- Joined: Mon Feb 06, 2006 10:28 pm
Ja, der normale Weg ist ein Fenster/FindeFenster und dann ein Fenster/Schließe Befehl.
Wenn das Programm gar nicht reagiert, dann hilft nur TASKKILL.EXE weiter, dass aber leider bei der "Home Edition" von Windows XP nicht dabei ist.
Wäre vielleicht mal eine Idee dessen Funktionalität in einen EG-Befehl zu packen. Müsste mit win32api.TerminateProcess gehen.
Wenn das Programm gar nicht reagiert, dann hilft nur TASKKILL.EXE weiter, dass aber leider bei der "Home Edition" von Windows XP nicht dabei ist.
Wäre vielleicht mal eine Idee dessen Funktionalität in einen EG-Befehl zu packen. Müsste mit win32api.TerminateProcess gehen.
Ich hab noch das Script um nicht reagierende Programme bei Bedarf abzuschießen. Hauptsächlich brauche ich das für Zoom Player. In der Beispielkonfiguration ist ja auch ein ZP abschießen drin 
Wobei das IsHungAppWindow laut Doku evtl. noch verändert wird. Alternativ kann man auch wohl schauen, ob die Anwendung ein SendMessage annimmt.
Wobei das IsHungAppWindow laut Doku evtl. noch verändert wird. Alternativ kann man auch wohl schauen, ob die Anwendung ein SendMessage annimmt.
Code: Select all
import win32api
import win32con
from win32process import GetWindowThreadProcessId
from win32gui import GetWindowText, SendMessageTimeout
import ctypes
for hwnd in eg.lastFoundWindows:
try:
killApp = ctypes.windll.user32.IsHungAppWindow(hwnd)
#print killApp
#err, result = SendMessageTimeout(hwnd, win32con.WM_COMMAND, 0, 0, win32con.SMTO_ABORTIFHUNG | win32con.SMTO_NOTIMEOUTIFNOTHUNG, 500)
#, err
except:
killApp = True
if killApp:
thread, pid = GetWindowThreadProcessId(hwnd)
print "killing", GetWindowText(hwnd), "PID:", pid
handle = win32api.OpenProcess(win32con.PROCESS_TERMINATE, False, pid)
win32api.TerminateProcess(handle, -1)
win32api.CloseHandle(handle)- Bitmonster
- Site Admin
- Posts: 2239
- Joined: Mon Feb 06, 2006 10:28 pm
Ja, sowas in der Art wird es wohl werden.
Im Gegensatz zu dem Fenster/Schließe ist das ja aber mehr auf Programme bezogen als auf Fenster bezogen. Fenster/Schließe kann ja auch ein einzelnes Fenster schließen, ohne die Applikation zu beenden. Sollte also wohl eher unter die System-Gruppe fallen und eine Auswahl nach .exe haben, statt nach Fenstern.
Im Gegensatz zu dem Fenster/Schließe ist das ja aber mehr auf Programme bezogen als auf Fenster bezogen. Fenster/Schließe kann ja auch ein einzelnes Fenster schließen, ohne die Applikation zu beenden. Sollte also wohl eher unter die System-Gruppe fallen und eine Auswahl nach .exe haben, statt nach Fenstern.