[python-win32] Negative HWND values from win32gui.EnumChildWindows
Kelly Kranabetter
Kelly.Kranabetter at tolko.com
Fri Aug 23 18:46:48 CEST 2013
I am occasionally getting back negative HWND values from EnumChildWindows. They appear to round trip properly, for example win32gui.GetClassName(-1901131990) appears to function properly. Not exactly a bug but is somewhat unexpected.
I had grabbed this code from the net somewhere to get the currently focused window which returns HWND as an unsigned long:
class GUITHREADINFO(ctypes.Structure):
_fields_ = [
("cbSize", ctypes.c_ulong),
("flags", ctypes.c_ulong),
("hwndActive", ctypes.c_ulong),
("hwndFocus", ctypes.c_ulong),
("hwndCapture", ctypes.c_ulong),
("hwndMenuOwner", ctypes.c_ulong),
("hwndMoveSize", ctypes.c_ulong),
("hwndCaret", ctypes.c_ulong),
("rcCaret", RECT)
]
def getFocusedWindow():
guiThreadInfo = GUITHREADINFO(cbSize=ctypes.sizeof(GUITHREADINFO))
user32.GetGUIThreadInfo(0, ctypes.byref(guiThreadInfo))
return guiThreadInfo.hwndFocus
My code would fail occasionally and I'd wonder why but never got into debugging it until one day it was failing constantly. After much head scratching the simple fix for me was to change the focus-finding-code to use ctypes.c_long so the result is not unsigned from both HWND sources.
Not sure it is worth trying to fix in Pythonwin but figured I should post about it.
This is on pywin32 build 217 on Python 2.7.2, Windows 7 32bit.
Kelly Kranabetter
Programmer/Support Analyst
Tolko Industries
(250)398-3980
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-win32/attachments/20130823/4139dd70/attachment.html>
More information about the python-win32
mailing list