欢迎访问宙启技术站
智能推送

使用Python编写的IsWindow()函数检测窗口是否可见及截图的方法

发布时间:2023-12-24 04:48:07

在Python中,可以使用pyautogui库来检测窗口是否可见并进行截图。下面是一个IsWindow()函数的示例,以及一个使用例子:

import time
import pyautogui
import win32gui

def IsWindow(window_title):
    hwnd = win32gui.FindWindow(None, window_title)  # 获取窗口句柄
    if hwnd == 0:
        return False  # 窗口不存在
    if win32gui.IsWindowVisible(hwnd):
        return True  # 窗口可见
    return False  # 窗口不可见

# 使用例子
window_title = "Notepad"  # 要检测的窗口标题
if IsWindow(window_title):
    print("窗口可见")
    
    # 获取窗口位置和大小
    hwnd = win32gui.FindWindow(None, window_title)
    rect = win32gui.GetWindowRect(hwnd)
    x, y, w, h = rect
    
    # 截图
    time.sleep(1)  # 等待1秒以确保窗口前置
    screenshot = pyautogui.screenshot(region=(x,y,w,h))
    screenshot.save("screenshot.png")
else:
    print("窗口不可见")

在这个例子中,首先编写了一个IsWindow()函数用来检测窗口是否可见。它使用了win32gui库的FindWindow()函数来获取窗口句柄,然后使用IsWindowVisible()函数来检测窗口是否可见。如果窗口可见,返回True;否则返回False。

然后,在使用例子中,我们指定了要检测的窗口标题,例如"Notepad"。然后调用IsWindow()函数来判断窗口是否可见。如果窗口可见,就会输出"窗口可见",然后获取窗口的位置和大小,使用pyautogui库的screenshot()函数来进行截图,指定截图区域为窗口的位置和大小,最后保存截图为"screenshot.png"。如果窗口不可见,就会输出"窗口不可见"。

需要注意的是,此例中使用了win32gui和pyautogui库,需要事先安装这两个库。可以使用pip命令来进行安装:

pip install pywin32
pip install pyautogui

此外,对于不同的应用程序,可能需要使用不同的窗口标题。可以使用一些工具,例如Spy++来获取窗口标题。