[python-win32] Cleanly Close System Tray Process
Gregory Piñero
gregpinero at gmail.com
Tue Aug 1 21:34:56 CEST 2006
Ok I figured out how to do it:
Here's the code I made mostly from copying the examples. If anyone
could tell me how the code works, that would still be appriciated, for
example why/how do I need this function _MyCallback?
-Greg
My code:
import sys
import win32process, win32api, win32pdhutil, win32con, win32security
import win32event, msvcrt, win32gui
def get_all_windows():
"""Returns dict with window desc and hwnd,
don't ask me how it works!"""
def _MyCallback( hwnd, extra ):
"""Helper function for above??"""
hwnds, classes = extra
hwnds.append(hwnd)
classes[win32gui.GetClassName(hwnd)] = hwnd
windows = []
classes = {}
win32gui.EnumWindows(_MyCallback, (windows, classes))
return classes
def request_windows_to_close(list_window_descs_to_close):
"""Send me a list of stuff to close such as:
stuff_to_close=['OP15_OmniPage_Agent_Class',]"""
classes=get_all_windows()
for windesc_to_close in list_window_descs_to_close:
if classes.has_key(windesc_to_close):
win32gui.PostMessage(classes[windesc_to_close],
win32con.WM_CLOSE, 0, 0)
print 'requested closure with', windesc_to_close
else:
print 'Did not find a window desc. as',windesc_to_close
More information about the Python-win32
mailing list