博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python实现windows窗体截图的三种方式
阅读量:3898 次
发布时间:2019-05-23

本文共 1335 字,大约阅读时间需要 4 分钟。

分别win32ui,pyqt5,PIL

1、windowsapi

import win32con, win32ui, win32gui    # 获取窗口句柄handle = win32gui.FindWindow(None,windowsname)    # 获取窗口DChdDC = win32gui.GetWindowDC(handle)    # 根据句柄创建一个DCnewhdDC = win32ui.CreateDCFromHandle(hdDC)    # 创建一个兼容设备内存的DCsaveDC = newhdDC.CreateCompatibleDC()    # 创建bitmap保存图片saveBitmap = win32ui.CreateBitmap()    #win32gui.SendMessage(handle, win32con.WM_SYSCOMMAND, win32con.SC_RESTORE, 0)    # 获取窗口的位置信息left, top, right, bottom = win32gui.GetWindowRect(handle)    # 窗口长宽width = right - leftheight = bottom - top    # bitmap初始化saveBitmap.CreateCompatibleBitmap(newhdDC, width, height)saveDC.SelectObject(saveBitmap)saveDC.BitBlt((0, 0), (width, height), newhdDC, (0, 0), win32con.SRCCOPY)saveBitmap.SaveBitmapFile(saveDC, filename)

2、pyqt5

import win32con, win32ui, win32guifrom PyQt5.QtWidgets import QApplicationfrom PyQt5.QtGui import *handle = win32gui.FindWindow(None,windowsname)app = QApplication(sys.argv)    screen = QApplication.primaryScreen()    img = screen.grabWindow(handle).toImage()    img.save("screenshot.jpg")

3、PIL

from PIL import ImageGrabimport win32con, win32ui, win32gui    # 获取窗口句柄handle = win32gui.FindWindow(None,windowsname)left, top, right, bottom = win32gui.GetWindowRect(handle)img_ready = ImageGrab.grab((left, top, right, bottom))img_ready.save(os.getcwd() + '/pil.png')

转载地址:http://xaben.baihongyu.com/

你可能感兴趣的文章
C++之位测试练习的相关代码
查看>>
C++之IPC测试单元
查看>>
C++之测试snmp的注册模块
查看>>
WebKit之WebSocket的初步源码分析2
查看>>
WebKit之Canvas的源码初步分析1
查看>>
WebKit之Canvas源码分析2
查看>>
WebKit之CSSValue的继承关系
查看>>
WebKit之ScriptWrapper继承关系图
查看>>
Perl之默认变量
查看>>
Linux之ARM/Linux与单片机开发差异
查看>>
Linux之内存泄露的检测工具
查看>>
URL之开源项目的在线网址
查看>>
工具之OpenGrok的搭建方法
查看>>
Android之NDK搭建
查看>>
qt之VS2008编译
查看>>
Python之自动生成代码继承关系
查看>>
php之与python进行socket通信
查看>>
Linux之共享库封装、使用的典型demo
查看>>
Linux之hello驱动编写
查看>>
网络之Http字段介绍
查看>>