关于python:python-实现超快窗口截图自动获取当前活动窗口并展示截图

实现思路是先获取到以后最下面流动的窗口信息,而后提取该窗口的名称信息。

【浏览全文】

之后获取窗口的坐标信息,即左上角的开始坐标及右下角的完结坐标。最初间接截图并将截图的图片进行展现。

其中用到了两个第三方模块,别离是win32gui和Pillow,装置命令如下:

pip install Pillow
pip install win32gui

将其中应用到的三个非标准库导入进来。

from win32gui import *  # 操作windows窗口
from PIL import ImageGrab  # 操作图像
import win32con  # 零碎操作

初始化一个set列表寄存所有流动窗口名称,应用set类型的目标是保障所有流动窗口名称的唯一性。

names = set()

编写get_window_title函数,获取以后的所有流动窗口对象。

def get_window_title(window, nouse):
    '''
    获取窗口题目函数
    :param window: 窗口对象
    :param nouse:
    :return:
    '''

    if IsWindow(window) and IsWindowEnabled(window) and IsWindowVisible(window):

        names.add(GetWindowText(window))

EnumWindows(get_window_title, 0)

list_ = [name for name in names if name]

for n in list_:

    print('流动窗口: ', n)

输出本人想要截图的窗口名称作为以后窗口,而后提取到须要截图的窗口对象。

name = input('请输出须要截图的流动窗口名称: \n')

window = FindWindow(0, name)  # 依据窗口名称获取窗口对象

ShowWindow(window, win32con.SW_MAXIMIZE)  # 将该窗口最大化

获取该窗口的坐标信息,开始坐标信息和完结坐标信息。

x_start, y_start, x_end, y_end = GetWindowRect(window)

# 坐标信息
box = (x_start, y_start, x_end, y_end)

调用ImageGrab.grab()函数实现对窗口的截图操作。

image = ImageGrab.grab(box)

在实现截图之后展现一下截图的成果,如果不须要展现的话就不须要增加这行代码了。

image.show()  # 图片展现,如果截完图须要展现则放开此项

最初一步,将截图好的图片保留下来。

image.save('target.png')

print('截图曾经保留实现!')

下面整个的python截图操作就实现了,目前正在思考怎么实现批量截图的过程,有好的倡议能够间接留言或是私信,感激大家始终以来的反对!

【往期精彩】

怎么用python做一个解压缩小工具…

python中最简略的turtle绘图:奥运五环!

常识汇总:python办公自动化应该学习哪些内容?

python多线程同步售票零碎解决思路…

发现几个好玩的游戏编程平台,与君共勉!

【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年50元

阿里云限时活动-2核2G-5M带宽-60G SSD-1000G月流量 ,特惠价99元/年(原价1234.2元/年,可以直接买3年),速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表评论

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据