WinTables: ignore tables that are not visible, have parents, or appear to be other non-app styled windows

This commit is contained in:
Eric Blade 2011-03-04 08:46:41 -05:00 committed by Steffen Schaumburg
parent 6a01a669f6
commit e3859a8fc9

View File

@ -62,6 +62,17 @@ class Table(Table_Window):
if re.search(self.search_string, titles[hwnd], re.I): if re.search(self.search_string, titles[hwnd], re.I):
if self.check_bad_words(titles[hwnd]): if self.check_bad_words(titles[hwnd]):
continue continue
if not win32gui.IsWindowVisible(hwnd): # if window not visible, probably not a table
continue
if win32gui.GetParent(hwnd) != 0: # if window is a child of another window, probably not a table
continue
HasNoOwner = win32gui.GetWindow(hwnd, win32con.GW_OWNER) == 0
WindowStyle = win32gui.GetWindowLong(hwnd, win32con.GWL_EXSTYLE)
if HasNoOwner and WindowStyle & win32con.WS_EX_TOOLWINDOW != 0:
continue
if not HasNoOwner and WindowStyle & win32con.WS_EX_APPWINDOW == 0:
continue
self.window = hwnd self.window = hwnd
break break