Python 指定窗口截屏


原文: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")

 

 

通過裁剪的方式 對窗口截屏


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM