Python 指定窗口截屏

摘要:
原文:https://blog.csdn.net/zhuisui_woxin/article/details/84345036保存背景窗口截图。使用此工具查看窗口信息:window Finder WinSpy-1.0.3#导入背景窗口截图win32gui、win32ui、win32confromctypes importwindelfromPILimportImageimportcv2importnum

原文:https://blog.csdn.net/zhuisui_woxin/article/details/84345036

对后台窗口截图保存

用这个工具查看窗口的信息:窗口查找工具 WinSpy-1.0.3

#对后台窗口截图
import win32gui, win32ui, win32con
from ctypes import windll
from PIL import Image
import cv2
import numpy

#获取后台窗口的句柄,注意后台窗口不能最小化
hWnd = win32gui.FindWindow("Chrome_WidgetWin_1","在线翻译_有道 - Google Chrome") #窗口的类名可以用Visual Studio的SPY++工具获取
#获取句柄窗口的大小信息
left, top, right, bot = win32gui.GetWindowRect(hWnd)
width = right - left
height = bot - top
#返回句柄窗口的设备环境,覆盖整个窗口,包括非客户区,标题栏,菜单,边框
hWndDC = win32gui.GetWindowDC(hWnd)
#创建设备描述表
mfcDC = win32ui.CreateDCFromHandle(hWndDC)
#创建内存设备描述表
saveDC = mfcDC.CreateCompatibleDC()
#创建位图对象准备保存图片
saveBitMap = win32ui.CreateBitmap()
#为bitmap开辟存储空间
saveBitMap.CreateCompatibleBitmap(mfcDC,width,height)
#将截图保存到saveBitMap中
saveDC.SelectObject(saveBitMap)
#保存bitmap到内存设备描述表
saveDC.BitBlt((0,0), (width,height), mfcDC, (0, 0), win32con.SRCCOPY)

#如果要截图到打印设备:
###最后一个int参数:0-保存整个窗口,1-只保存客户区。如果PrintWindow成功函数返回值为1
result = windll.user32.PrintWindow(hWnd,saveDC.GetSafeHdc(),0)
print(result) #PrintWindow成功则输出1

#保存图像
##方法一:windows api保存
###保存bitmap到文件
saveBitMap.SaveBitmapFile(saveDC,"img_Winapi.bmp")

通过裁剪的方式 对窗口截屏

免责声明:文章转载自《Python 指定窗口截屏》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇微信小程序轮播图组件 swiper,swiper-item及轮播图片自适应微信公众号开发系列-获取微信OpenID下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)

在制作视图背景特效时,我被各种获取坐标的方法弄糊涂了,来回复制的几篇博文也不清楚。涉及以下方法:view获取自己的坐标:getLeft()、getTop()、getRight()和getBottom()view获取自己自己的宽度和高度:getHeight(),getWidth()motionEvent获取其坐标:getX()、get Y()、Get RawX...

db2字符串函数

可以指定可选的字符串长度单位,以指示哪些单位表示函数的起始位置和结果。使用基于字符的函数解决了将字节位置返回到字符位置的问题。代码单元16和代码单元32根据字符数计数。类似地,CODEUNITS32指定使用Unicode UTF-32来理解多字节字符的字符边界。如果使用CODEUNITS获取字符长度,则用作字符串函数输入的不同CODEUNITS将导致不同的输...

C# 没落了吗?

首先,这个数字--------------------------------------------C#是否正在衰落与微软的整个平台密切相关。近年来,使用C#的人越来越少,这也是因为越来越少的人专门为Microsoft平台开发产品。现在是移动时代,微软基本上错过了互联网和移动互联网这两波浪潮。现在生活不容易。在软件工程中,人们常说“唯一不变的就是改变本身”...

FTPClient

(iReplyCode==331||iReplyCode==230)){CloseSocketConnect();thrownewIOException(strReply.Substring(4));}if(iReplyCode!=230){SendCommand("PASS"+strRemotePass);if(!=null){SendCommand("Q...

CentOS7上使用history删除部分历史记录

使用history命令删除登录后创建的历史记录,但保留原始记录。如果未执行history命令,则直接使用history-r命令将文件中的历史刷新到此处的缓存中,并且不会保存以前操作的记录。修改后,执行:history-c以清除当前会话历史中的历史缓存-r以读取~/。bash_您可以看到历史文件中的历史记录已在缓存中更新。...

Oracle创建用户并给用户授权查询指定表或视图的权限

4)限制第三方用户连接数最后还要对NORTHBOUND用户进行连接数的限制,以免第三方无限制的连接数据库,造成数据库SESSION暴涨:conn/assysdbaaltersystemsetresource_limite=truescope=bothsid='*';新建profile,初始限制为1,用于测试。这里用户名称分别为ryd_interface_sr...