news 2026/6/10 17:48:55

在最小化浏览器的情况下给浏览器截图 python

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
在最小化浏览器的情况下给浏览器截图 python
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")
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 9:24:36

FFUF模糊测试终极指南:快速掌握Web安全利器

FFUF模糊测试终极指南:快速掌握Web安全利器 【免费下载链接】ffuf Fast web fuzzer written in Go 项目地址: https://gitcode.com/gh_mirrors/ff/ffuf 在当今数字化时代,FFUF模糊测试已经成为网络安全专家必备的Web安全工具。这款基于Go语言开发…

作者头像 李华
网站建设 2026/6/10 9:37:45

libbacktrace 完整指南:5步掌握调用栈分析技术

libbacktrace 完整指南:5步掌握调用栈分析技术 【免费下载链接】libbacktrace A C library that may be linked into a C/C program to produce symbolic backtraces 项目地址: https://gitcode.com/gh_mirrors/li/libbacktrace libbacktrace 是一个功能强大…

作者头像 李华
网站建设 2026/6/10 10:46:13

Polotno Studio:免费在线设计编辑器的终极指南

Polotno Studio:免费在线设计编辑器的终极指南 【免费下载链接】polotno-studio Free online Design Editor. 项目地址: https://gitcode.com/gh_mirrors/po/polotno-studio Polotno Studio是一个功能强大的免费在线设计编辑器,基于开源Polotno S…

作者头像 李华
网站建设 2026/6/10 12:08:15

Jupyter Lab在TensorFlow 2.9镜像中的高级用法与插件推荐

Jupyter Lab在TensorFlow 2.9镜像中的高级用法与插件推荐 在深度学习项目开发中,一个稳定、高效且可复现的环境往往比模型结构本身更早成为瓶颈。你是否曾遇到过这样的场景:本地训练好的模型无法在同事机器上运行?或者因为CUDA版本不匹配导致…

作者头像 李华
网站建设 2026/6/10 7:54:35

MATLAB MPT 3.2.1工具箱完整安装教程

MATLAB MPT 3.2.1工具箱完整安装教程 【免费下载链接】MATLABMPT3.2.1工具箱安装指南 本仓库提供了一个资源文件,用于安装MATLAB MPT 3.2.1工具箱。多参数工具箱(Multi-Parametric Toolbox,简称MPT)是一个开源的、基于Matlab的工具…

作者头像 李华
网站建设 2026/6/10 7:52:58

AMD ROCm在Windows上部署PyTorch:3大实战挑战与解决方案

AMD ROCm在Windows上部署PyTorch:3大实战挑战与解决方案 【免费下载链接】ROCm AMD ROCm™ Software - GitHub Home 项目地址: https://gitcode.com/GitHub_Trending/ro/ROCm 想要在Windows系统上充分发挥AMD GPU的计算潜力?AMD ROCm平台与PyTorc…

作者头像 李华