news 2026/8/29 3:43:18

在最小化浏览器的情况下给浏览器截图 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/8/22 9:28:41

一键搞定B站音频下载:Python工具的完整实战指南

还在为无法离线收听B站精彩内容而烦恼吗?想要将UP主的优质视频转换为随身携带的音频文件吗?今天为大家介绍一款专业的B站音频下载工具——BiliFM,它能够轻松实现Bilibili音频提取,让你随时随地享受精彩内容。 【免费下载链接】Bil…

作者头像 李华
网站建设 2026/8/27 17:27:43

Redpill Recovery:群晖引导工具的终极解决方案与专业部署指南

Redpill Recovery:群晖引导工具的终极解决方案与专业部署指南 【免费下载链接】rr Redpill Recovery (arpl-i18n) 项目地址: https://gitcode.com/gh_mirrors/rr2/rr 还在为群晖系统引导失败而烦恼吗?每次系统更新都提心吊胆,担心引导…

作者头像 李华
网站建设 2026/8/22 9:28:29

MySQL 索引失效全攻略:从 8 大经典原因到生产级优化实践

MySQL 索引不生效(也称为“索引失效”)是数据库开发和优化中最常见的问题之一。 它会导致查询性能急剧下降,甚至可能从毫秒级骤降到秒级。 本文将从索引工作原理出发,深入剖析 8 大经典原因 和 6 个进阶陷阱,并给出生产级的优化建议。 一、核心概念回顾:索引是如何工作的…

作者头像 李华
网站建设 2026/8/22 15:31:29

打造景区独立私域利器,深度解析智慧旅游小程序源码的核心竞争力

温馨提示:文末有资源获取方式在流量成本日益高昂的今天,构建属于自己的私域流量池,实现游客的自主触达、精细运营与价值深耕,已成为景区可持续发展的核心战略。一套功能强大的智慧旅游小程序多商户系统,正是构建这一私…

作者头像 李华
网站建设 2026/8/22 15:43:06

全域旅游流量,一站整合式小程序源码,让每位游客都成为增长点

温馨提示:文末有资源获取方式游客的需求贯穿“吃、住、行、游、购、娱”各个环节。景区传统的单一门票经济模式已难以为继,能否有效整合周边资源、延长游客消费链条、最大化每位游客的终身价值,决定了景区的盈利能力。一款具备多商户整合能力…

作者头像 李华