• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

python 搞java代码 3年前 (2022-05-21) 16次浏览 已收录 0个评论

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

【浏览全文】

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

其中用到了两个第三方模块,别离是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多线程同步售票零碎解决思路…

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


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python-实现超快窗口截图自动获取当前活动窗口并展示截图

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址