import win32gui import win32ui import win32con import win32api from PIL import Image import time from ctypes import windll def capture_window_by_title(window_title, output_path="window_capture.png"): """ 根据窗口标题截取指定窗口内容,无需激活窗口 Args: window_title: 窗口标题(部分匹配) output_path: 输出图片路径 """ # 查找窗口句柄 def enum_windows_callback(hwnd, windows): if win32gui.IsWindowVisible(hwnd): window_text = win32gui.GetWindowText(hwnd) if window_title.lower() in window_text.lower(): windows.append(hwnd) return True windows = [] win32gui.EnumWindows(enum_windows_callback, windows) if not windows: print(f"未找到包含 '{window_title}' 的窗口") return None # 选择第一个匹配的窗口 hwnd = windows[0] # 获取窗口位置和大小 left, top, right, bottom = win32gui.GetWindowRect(hwnd) width = right - left height = bottom - top # 获取设备上下文 hwndDC = win32gui.GetWindowDC(hwnd) mfcDC = win32ui.CreateDCFromHandle(hwndDC) saveDC = mfcDC.CreateCompatibleDC() # 创建位图 saveBitMap = win32ui.CreateBitmap() saveBitMap.CreateCompatibleBitmap(mfcDC, width, height) saveDC.SelectObject(saveBitMap) # 使用 PrintWindow API 截取窗口 result = windll.user32.PrintWindow(hwnd, saveDC.GetSafeHdc(), 3) if result: # 转换为PIL图像 bmpinfo = saveBitMap.GetInfo() bmpstr = saveBitMap.GetBitmapBits(True) im = Image.frombuffer( 'RGB', (bmpinfo['bmWidth'], bmpinfo['bmHeight']), bmpstr, 'raw', 'BGRX', 0, 1) im.save(output_path) print(f"窗口截图已保存到: {output_path}") # 清理资源 win32gui.DeleteObject(saveBitMap.GetHandle()) saveDC.DeleteDC() mfcDC.DeleteDC() win32gui.ReleaseDC(hwnd, hwndDC) return output_path if result else None # 使用示例 if __name__ == "__main__": # 截取Edge浏览器窗口 capture_window_by_title("Edge", "edge_capture.png")在最小化浏览器的情况下给浏览器截图 python
张小明
前端开发工程师
宏智树AI查重系统:学术文本的基因测序仪
官网:www.hzsxueshu.com | 公众号:搜索“宏智树AI” 宏智树AI的免费查重功能,构建在三个维度的基因分析技术上: 第一维度:表层基因匹配——文字的显性遗传 这是查重的基础层,如同识别生物的外表特征&…
开题报告总被导师打回?宏智树AI用“三步定位法”帮你精准破局!
每年开题季,总有一群学生抱着“熬夜写出的开题报告”找导师,结果被批得“体无完肤”——“选题太宽泛”“研究价值不明确”“方法设计有漏洞”“文献综述像拼凑”……更扎心的是,导师一句“重新改”直接让之前的努力归零。 其实,…
清华镜像源提供TensorFlow历史版本归档下载
清华镜像源提供TensorFlow历史版本归档下载 在人工智能项目开发中,你是否曾遇到这样的场景:一篇论文的代码仓库写着“基于 TensorFlow 2.9”,可当你用最新的 TensorFlow 2.15 运行时,却报出一连串 AttributeError 和 Deprecated A…
终极指南:Spring Authorization Server 快速搭建企业级授权中心
终极指南:Spring Authorization Server 快速搭建企业级授权中心 【免费下载链接】spring-authorization-server Spring Authorization Server 项目地址: https://gitcode.com/gh_mirrors/spr/spring-authorization-server 想要构建一个安全可靠的OAuth2授权服…
QMsolve量子力学求解器:从入门到精通完整指南
QMsolve量子力学求解器:从入门到精通完整指南 【免费下载链接】qmsolve 项目地址: https://gitcode.com/gh_mirrors/qm/qmsolve QMsolve是一款强大的开源量子力学求解器,专门用于求解薛定谔方程并进行多维可视化。这个工具为量子力学教学和科研提…
PyTorch安装教程GPU版验证安装是否成功的方法
PyTorch GPU 安装验证全解析:从环境配置到实战检测 在深度学习项目启动的那一刻,最令人沮丧的场景之一莫过于——你以为模型正在 GPU 上飞速训练,结果一查才发现它一直在 CPU 上缓慢爬行。这种“假加速”现象并不少见,根源往往在…