关于python win32 后台截屏 黑屏怎么解
关于 DC 的我到(CreateDCFromHandle) 创建设备描述表就不明白怎么回事了, 所以为什么 窗口后台截屏会出现黑屏以及怎么解决 也就不明白import win32ui
import win32gui
import win32con
def get_img(hwnd):
"""
后台截屏
:param hwnd: 窗口句柄
"""
left, top, right, bot = win32gui.GetWindowRect(hwnd)
w = right - left
h = bot - top
dc = win32gui.GetWindowDC(hwnd)
mfcDc = win32ui.CreateDCFromHandle(dc)# 创建设备描述表
saveDC = mfcDc.CreateCompatibleDC()# 创建内存设备描述表
saveBitMap = win32ui.CreateBitmap()# 创建位图对象准备保存图片
saveBitMap.CreateCompatibleBitmap(mfcDc, w, h)# 为 bitmap 开辟存储空间
saveDC.SelectObject(saveBitMap)# 将截图保存到 saveBitMap 中
saveDC.BitBlt((0, 0), (w, h), mfcDc, (0, 0), win32con.SRCCOPY)# 保存bitmap到内存设备描述表
saveBitMap.SaveBitmapFile(saveDC, fr"{hwnd}.bmp")# 保存bitmap到文件
# 释放缓存
win32gui.DeleteObject(saveBitMap.GetHandle())
saveDC.DeleteDC()
mfcDc.DeleteDC()
win32gui.ReleaseDC(hwnd, dc)
提问应该把相应的代码传完。
所谓 窗口后台截屏 指的是截取非当前活动窗口(而并非是最小化后的窗口,当然最少化也能截取,那就只是截取到标题栏)
截取后台窗口要用到api函数PrintWindow参考:
https://blog.csdn.net/weixin_30844603/article/details/114393580
页:
[1]