python基于win32實(shí)現(xiàn)窗口截圖
本文實(shí)例為大家分享了python基于win32實(shí)現(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, '項(xiàng)目里程碑.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: 窗口句柄 一個(gè)整數(shù) """ if hwnd != win32gui.GetForegroundWindow(): shell = win32com.client.Dispatch("WScript.Shell") shell.SendKeys('%') win32gui.SetForegroundWindow(hwnd) def winShot(hwnd): """ 根據(jù)窗口句柄截取窗口視圖 :param hwnd: 窗口句柄 一個(gè)整數(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)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python使用pygame模塊編寫俄羅斯方塊游戲的代碼實(shí)例
這篇文章主要介紹了Python使用pygame模塊編寫俄羅斯方塊游戲的代碼實(shí)例,最基本的方塊變換和行消除等功能都在代碼中一一體現(xiàn),需要的朋友可以參考下2015-12-12深入探究PyTorch核心特性之自動(dòng)求導(dǎo)和優(yōu)化
在你已經(jīng)掌握了如何使用PyTorch構(gòu)建神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上,接下來我們將深入探討PyTorch的兩個(gè)核心特性:自動(dòng)求導(dǎo)(Autograd)和優(yōu)化(Optimization),這兩個(gè)特性在深度學(xué)習(xí)模型的訓(xùn)練過程中起著至關(guān)重要的作用,感興趣的同學(xué)一起來看看吧2023-07-07tensorflow:指定gpu 限制使用量百分比,設(shè)置最小使用量的實(shí)現(xiàn)
今天小編就為大家分享一篇tensorflow:指定gpu 限制使用量百分比,設(shè)置最小使用量的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02Python基于回溯法子集樹模板解決旅行商問題(TSP)實(shí)例
這篇文章主要介紹了Python基于回溯法子集樹模板解決旅行商問題(TSP),簡(jiǎn)單描述了旅行商問題并結(jié)合實(shí)例形式分析了Python使用回溯法子集樹模板解決旅行商問題的相關(guān)實(shí)現(xiàn)步驟與操作技巧,需要的朋友可以參考下2017-09-09Pandas替換及部分替換(replace)實(shí)現(xiàn)流程詳解
這篇文章主要介紹了Pandas替換及部分替換(replace)實(shí)現(xiàn)流程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10Python連接Mssql基礎(chǔ)教程之Python庫pymssql
這篇文章主要給大家介紹了關(guān)于Python連接Mssql基礎(chǔ)教程之Python庫pymssql的相關(guān)資料,文中分別介紹了連接數(shù)據(jù)庫、游標(biāo)使用注意事項(xiàng)、游標(biāo)返回行為字典變量、使用with語句(上下文管理器)以及調(diào)用存儲(chǔ)過程等的實(shí)現(xiàn),需要的朋友可以參考下2018-09-09pandas dataframe rolling移動(dòng)計(jì)算方式
在Pandas中,rolling()方法用于執(zhí)行移動(dòng)窗口計(jì)算,常用于時(shí)間序列數(shù)據(jù)分析,例如,計(jì)算某商品的7天或1個(gè)月銷售總量,可以通過rolling()輕松實(shí)現(xiàn),該方法的關(guān)鍵參數(shù)包括window(窗口大?。?min_periods(最小計(jì)算周期)2024-09-09Python+wxPython實(shí)現(xiàn)文件名批量處理
在日常的文件管理中,我們經(jīng)常需要對(duì)文件進(jìn)行批量處理以符合特定的命名規(guī)則或需求,本文主要介紹了如何使用wxPython進(jìn)行文件夾中文件名的批量處理,需要的可以參考下2024-04-04Python偽代碼分析點(diǎn)贊器實(shí)現(xiàn)原理及代碼
這篇文章主要介紹了Python偽代碼分析點(diǎn)贊器實(shí)現(xiàn)原理,本次點(diǎn)贊機(jī)器人,主要面向電腦上的 Web 站點(diǎn),不涉及 APP 端,需要的朋友可以參考下2022-04-04