Hi Tim G., <snipped for brevity>
> > I can get the handle by doing this: > > > > hwnd = win32gui.FindWindow('IEFrame',None) > > > > But if there's multiple Explorer windows open, I may not get the > > window I want. That's why I would like to create my own so > I can have > > what amounts to an "exclusive" handle to it. Any hints > would be appreciated. > > I thought I'd posted a How-Do-I? on this one, but obviously > not. At any rate, here's the code I intended to post up. Hope > it helps as a starting point: > > <code> > import subprocess > import time > > import win32con > import win32gui > import win32process > > > def get_hwnds_for_pid (pid): > > def callback (hwnd, hwnds): > if win32gui.IsWindowVisible (hwnd) and > win32gui.IsWindowEnabled (hwnd): > _, found_pid = win32process.GetWindowThreadProcessId (hwnd) > if found_pid == pid: > hwnds.append (hwnd) > return True > > hwnds = [] > win32gui.EnumWindows (callback, hwnds) > return hwnds > > if __name__ == '__main__': > notepad = subprocess.Popen ([r"notepad.exe"]) > # > # sleep to give the window time to appear > # > time.sleep (2.0) > > for hwnd in get_hwnds_for_pid (notepad.pid): > print hwnd, "=>", win32gui.GetWindowText (hwnd) > win32gui.SendMessage (hwnd, win32con.WM_CLOSE, 0, 0) > > </code> > > TJG > I think this will work. It's a little bit quicker than the method Alec mentioned (and which I use in another part of my app) and it's definitely a little less confusing. I just tested it by opening a couple other instances of Notepad before running it and your script kills only the Notepad process that it opens, as expected. Very cool. Thanks for helping me once again. Mike _______________________________________________ python-win32 mailing list python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32