news 2026/4/23 13:09:24

在最小化浏览器的情况下给浏览器截图 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/4/23 13:00:09

智能体项目管理:从理论到实践的系统性指南

智能体项目管理:从理论到实践的系统性指南 【免费下载链接】hello-agents 📚 《从零开始构建智能体》——从零开始的智能体原理与实践教程 项目地址: https://gitcode.com/GitHub_Trending/he/hello-agents (文章内容...) …

作者头像 李华
网站建设 2026/4/18 6:53:16

阿里云大模型课程学习笔记1-大模型基础知识

熟悉我的朋友可能知道我主业是做大数据平台的Java工程师,我公众号主要分享的是AI资讯,测评,产品等方面的信息,附带也有一些出海文章和个人感想,读书笔记等。主要还是AI相关的内容,但是我从来没有自己去构建…

作者头像 李华
网站建设 2026/4/22 23:30:48

PostgreSQL vs MongoDB — 企业级架构选型终极指南

一句话先结论: PostgreSQL 管 钱与关系(强一致事务 & 复杂查询) MongoDB 管 内容与规模(动态结构 & 海量写入) 最常见、最稳的企业架构是 混合使用,而不是二选一 🧭 一、为什么每一家公司都必须做“数据库选型”? 现代系统不再只是存结构化数据。 真实场景往…

作者头像 李华
网站建设 2026/4/21 2:29:46

Folo终极指南:掌握AI信息聚合的完整教程

Folo终极指南:掌握AI信息聚合的完整教程 【免费下载链接】follow [WIP] Next generation information browser 项目地址: https://gitcode.com/GitHub_Trending/fol/follow 在信息爆炸的时代,你是否经常感到被海量内容淹没?每天在不同…

作者头像 李华
网站建设 2026/4/22 20:41:45

Keil uVision5使用教程:基于STM32的项目创建实战案例

从零开始搭建STM32工程:Keil uVision5实战手记 你有没有过这样的经历?打开Keil uVision5,面对一片空白的项目窗口,鼠标悬在“New Project”上迟迟不敢点下——心里发虚:接下来该选什么芯片?启动文件要不要自…

作者头像 李华