python基于win32實現(xiàn)窗口截圖
本文實例為大家分享了python基于win32實現(xiàn)窗口截圖的具體代碼,供大家參考,具體內(nèi)容如下
獲取窗口句柄和標(biāo)題
import win32gui hwnd_title = dict() def _get_all_hwnd(hwnd, mouse): if win32gui.IsWindow(hwnd) and win32gui.IsWindowEnabled(hwnd) and win32gui.IsWindowVisible(hwnd): hwnd_title.update({hwnd: win32gui.GetWindowText(hwnd)}) win32gui.EnumWindows(_get_all_hwnd, 0) for wnd in hwnd_title.items(): print(wnd)
運(yùn)行結(jié)果如下,格式為:(窗口句柄, 窗口標(biāo)題)
可自行根據(jù)標(biāo)題篩選想要的窗口
(65772, '') (262798, 'pythonProject – screenShot.py') (5114244, '項目里程碑.ppt[兼容模式] - PowerPoint') (3803304, '') (133646, '') (133642, '')
根據(jù)窗口句柄截圖
import win32com.client import win32gui import win32api import win32con import win32ui from PIL import Image def setForeground(hwnd): """ 將窗口設(shè)置為最前面 :param hwnd: 窗口句柄 一個整數(shù) """ if hwnd != win32gui.GetForegroundWindow(): shell = win32com.client.Dispatch("WScript.Shell") shell.SendKeys('%') win32gui.SetForegroundWindow(hwnd) def winShot(hwnd): """ 根據(jù)窗口句柄截取窗口視圖 :param hwnd: 窗口句柄 一個整數(shù) """ bmpFileName = 'screenshot.bmp' jpgFileName = 'screenshot.jpg' r = win32gui.GetWindowRect(hwnd) hwin = win32gui.GetDesktopWindow() # 圖片最左邊距離主屏左上角的水平距離 left = win32api.GetSystemMetrics(win32con.SM_XVIRTUALSCREEN) # 圖片最上邊距離主屏左上角的垂直距離 top = win32api.GetSystemMetrics(win32con.SM_YVIRTUALSCREEN) hwindc = win32gui.GetWindowDC(hwin) srcdc = win32ui.CreateDCFromHandle(hwindc) memdc = srcdc.CreateCompatibleDC() bmp = win32ui.CreateBitmap() bmp.CreateCompatibleBitmap(srcdc, r[2] - r[0], r[3] - r[1]) memdc.SelectObject(bmp) memdc.BitBlt((-r[0], top - r[1]), (r[2], r[3] - top), srcdc, (left, top), win32con.SRCCOPY) bmp.SaveBitmapFile(memdc, bmpFileName) im = Image.open(bmpFileName) im = im.convert('RGB') im.save(jpgFileName) if __name__ == '__main__': setForeground(5114244) winShot(5114244)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python模擬點(diǎn)擊網(wǎng)頁按鈕實現(xiàn)方法
在本篇文章里小編給大家整理的是一篇關(guān)于python模擬點(diǎn)擊網(wǎng)頁按鈕實現(xiàn)方法,需要的朋友們可以參考下。2020-02-02基于tensorflow __init__、build 和call的使用小結(jié)
這篇文章主要介紹了基于tensorflow __init__、build 和call的使用小結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02python獲取網(wǎng)絡(luò)圖片方法及整理過程詳解
這篇文章主要介紹了python獲取網(wǎng)絡(luò)圖片方法及整理過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12使用python計算方差方式——pandas.series.std()
這篇文章主要介紹了使用python計算方差方式——pandas.series.std(),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05Python通過psd-tools解析PSD文件的實現(xiàn)
本文主要介紹了Python通過psd-tools解析PSD文件的實現(xiàn),主要包括如何獲取PSD文件的基本信息、遍歷圖層、提取圖層詳細(xì)信息、保存和創(chuàng)建PSD文件,感興趣的可以了解一下2023-12-12