Python中判断窗口是否存在的快速方法——IsWindow()函数
发布时间:2023-12-24 04:47:26
在Python中,可以通过win32gui.FindWindow()函数判断窗口是否存在。具体来说,FindWindow()函数会搜索指定的窗口类名和窗口标题,若找到对应的窗口,则返回窗口的句柄;否则,返回0。
然而,使用FindWindow()函数有一个问题,即无法区分系统级和应用级窗口。因此,为了更准确地判断窗口是否存在,可以使用win32gui.EnumWindows()函数遍历所有窗口,并通过窗口的类名和标题进行匹配。
以下是一个示例,展示如何使用IsWindow()函数判断窗口是否存在:
import win32gui
def is_window(window_class, window_title):
def callback(hwnd, window_data):
if win32gui.IsWindowVisible(hwnd) and \
win32gui.GetWindowText(hwnd).lower() == window_title.lower() and \
win32gui.GetClassName(hwnd) == window_class:
window_data["found"] = True
return True
window_data = {"found": False}
win32gui.EnumWindows(callback, window_data)
return window_data["found"]
# 示例用法
if is_window("Notepad", "Untitled - Notepad"):
print("窗口存在")
else:
print("窗口不存在")
上述示例中,is_window()函数接受两个参数,即窗口类名和窗口标题。它会使用EnumWindows()函数遍历所有窗口,并使用IsWindowVisible()函数判断窗口是否可见。在遍历过程中,每个窗口的类名和标题会与参数进行比较,若匹配,则将window_data["found"]置为True。最终,返回window_data["found"]的值。
以上就是使用IsWindow()函数判断窗口是否存在的方法,通过遍历所有窗口进行匹配,可以更准确地判断窗口的存在性。
