您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:python基于win32实现窗口截图

51自学网 2021-10-30 22:53:09
  python
这篇教程python基于win32实现窗口截图写得很实用,希望能帮到您。

本文实例为大家分享了python基于win32实现窗口截图的具体代码,供大家参考,具体内容如下

获取窗口句柄和标题

import win32guihwnd_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)

运行结果如下,格式为:(窗口句柄, 窗口标题)
可自行根据标题筛选想要的窗口

(65772, '')(262798, 'pythonProject – screenShot.py')(5114244, '项目里程碑.ppt[兼容模式] - PowerPoint')(3803304, '')(133646, '')(133642, '')

根据窗口句柄截图

import win32com.clientimport win32guiimport win32apiimport win32conimport win32uifrom PIL import Imagedef setForeground(hwnd): """  将窗口设置为最前面 :param hwnd: 窗口句柄 一个整数 """ if hwnd != win32gui.GetForegroundWindow():  shell = win32com.client.Dispatch("WScript.Shell")  shell.SendKeys('%')  win32gui.SetForegroundWindow(hwnd)def winShot(hwnd): """  根据窗口句柄截取窗口视图 :param hwnd: 窗口句柄 一个整数 """ 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)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持51zixue.net。


python 插入Null值数据到Postgresql的操作
python实现碑帖图片横向拼接
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。