news 2026/6/12 19:45:06

在最小化浏览器的情况下给浏览器截图 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/12 12:20:33

SSH无密码登录批量管理多个TensorFlow服务器

SSH无密码登录批量管理多个TensorFlow服务器 在AI实验室或生产环境中,你是否经历过这样的场景:为了检查三台GPU服务器的显存使用情况,不得不重复输入三次密码?或者在深夜触发一轮分布式训练任务时,脚本卡在SSH认证环节…

作者头像 李华
网站建设 2026/6/9 22:32:21

Cap开源录屏工具完全指南:3步掌握专业级屏幕录制

Cap开源录屏工具完全指南:3步掌握专业级屏幕录制 【免费下载链接】Cap Effortless, instant screen sharing. Open-source and cross-platform. 项目地址: https://gitcode.com/GitHub_Trending/cap1/Cap 还在为寻找一款简单易用、功能强大的免费录屏工具而烦…

作者头像 李华
网站建设 2026/5/30 20:21:07

Chalk.ist 快速上手终极指南:创建精美代码图片的完整教程

Chalk.ist 快速上手终极指南:创建精美代码图片的完整教程 【免费下载链接】chalk.ist 📷 Create beautiful images of your source code 项目地址: https://gitcode.com/gh_mirrors/ch/chalk.ist Chalk.ist 是一个基于 Vue3 和 Nuxt3 构建的开源项…

作者头像 李华
网站建设 2026/5/30 17:25:41

Supabase Storage:基于PostgreSQL的S3兼容对象存储解决方案

Supabase Storage:基于PostgreSQL的S3兼容对象存储解决方案 【免费下载链接】storage S3 compatible object storage service that stores metadata in Postgres 项目地址: https://gitcode.com/gh_mirrors/st/storage 想要为你的应用找一个既强大又易于管理…

作者头像 李华
网站建设 2026/6/10 14:34:34

git remote配置多个TensorFlow代码托管地址

git remote配置多个TensorFlow代码托管地址 在深度学习项目开发中,环境不一致、网络延迟和协作壁垒是开发者最常遇到的三大“隐形杀手”。你是否经历过这样的场景:团队成员复现不出你的实验结果,排查半天才发现有人用的是 TensorFlow 2.9&…

作者头像 李华
网站建设 2026/6/11 5:49:50

微信机器人零基础搭建指南:4步实现AI智能自动回复

微信机器人零基础搭建指南:4步实现AI智能自动回复 【免费下载链接】wechat-bot 🤖一个基于 WeChaty 结合 DeepSeek / ChatGPT / Kimi / 讯飞等Ai服务实现的微信机器人 ,可以用来帮助你自动回复微信消息,或者管理微信群/好友&#…

作者头像 李华