iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中如何使用win32api实现自动唤醒并截图
  • 433
分享到

Python中如何使用win32api实现自动唤醒并截图

2023-06-29 03:06:44 433人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“python中如何使用win32api实现自动唤醒并截图”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中如何使用win32api实现自动唤醒并截图”文章能帮助大家解决问

这篇文章主要介绍“python中如何使用win32api实现自动唤醒并截图”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中如何使用win32api实现自动唤醒并截图”文章能帮助大家解决问题。

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南进行安装。

(可选1) 如果你用Python的目的是数据分析,可以直接安装Anaconda: Python数据分析与挖掘好帮手—Anaconda ,它内置了Python和pip.

(可选2) 此外,推荐大家用vscode编辑器,它有许多的优点: Python 编程的最好搭档—VSCode 详细指南 。

请选择以下任一种方式输入命令安装依赖 :

windows 环境 打开 Cmd (开始-运行-CMD)。

MacOS 环境 打开 Terminal (command+空格输入Terminal)。

如果你用的是 VSCode编辑器 或 PyCharm,可以直接使用界面下方的Terminal.

pip install pypiwin32pip install pillow

2.如何获取窗口坐标

通过 win32gui 的 FindWindow 函数,我们能轻易地找到任何进程的窗口:

import win32api, win32con, win32guidef get_window_pos(name):    name = name    handle = win32gui.FindWindow(0, name)    # 获取窗口句柄    if handle == 0:        return None    else:        return win32gui.GetWindowRect(handle)x1, y1, x2, y2 = get_window_pos('暴雪战网')print(x1,y1,x2,y2)

结果:

>> python 1.py
# (349,83,1549,1013)

输出结果中的元组即是窗口信息(x1, y1, x2, y2):

(x1, y1)是窗口左上角的坐标。

(x2, y2)是窗口右下角的坐标。

我们可以利用这个信息配合PIL进行截图。但是在这之前,我们还要解决两个问题:

该窗口并不在当前的界面上,被其他的软件覆盖到底层中,这时候需要高亮窗口。

该窗口被最小化怎么办?

win32gui 高亮窗口

为了使得被叠在底层的窗口能放到最上层显示,我们需要拿到窗口的handle,对其执行高亮操作。

使用 win32gui 可以非常简单地实现这个特性,我们刚刚获得坐标信息的时候已经得到handle了,调用一个SetForegroundWindow方法即可:

import win32api, win32con, win32guidef get_window_pos(name):    name = name    handle = win32gui.FindWindow(0, name)    # 获取窗口句柄    if handle == 0:        return None    else:        # 返回坐标值和handle        return win32gui.GetWindowRect(handle), handle(x1, y1, x2, y2), handle = get_window_pos('暴雪战网')text = win32gui.SetForegroundWindow(handle)

这样就能将被覆盖到底层的窗口放到最上层,如下图所示。

Python中如何使用win32api实现自动唤醒并截图

3. 还原最小化窗口

还有一种特殊情况就是窗口被缩小了,这时候我们就需要还原最小化窗口,其实也非常简单,只要利用win32gui和win32con向该窗口发送一个信息即可。

import win32api, win32con, win32guidef get_window_pos(name):    name = name    handle = win32gui.FindWindow(0, name)    # 获取窗口句柄    if handle == 0:        return None    else:        # 返回坐标值和handle        return win32gui.GetWindowRect(handle), handle(x1, y1, x2, y2), handle = get_window_pos('暴雪战网')win32gui.SendMessage(handle, win32con.WM_SYSCOMMAND, win32con.SC_RESTORE, 0)# 发送还原最小化窗口的信息win32gui.SetForegroundWindow(handle)# 设为高亮

效果如图所示:

Python中如何使用win32api实现自动唤醒并截图

4.截图

最后可以试一下我们的完整代码了,针对指定的坐标使用PIL模块进行截图,代码如下:

import win32api, win32con, win32guidef get_window_pos(name):    name = name    handle = win32gui.FindWindow(0, name)    # 获取窗口句柄    if handle == 0:        return None    else:        # 返回坐标值和handle        return win32gui.GetWindowRect(handle), handle(x1, y1, x2, y2), handle = get_window_pos('暴雪战网')win32gui.SendMessage(handle, win32con.WM_SYSCOMMAND, win32con.SC_RESTORE, 0)# 发送还原最小化窗口的信息win32gui.SetForegroundWindow(handle)# 设为高亮from PIL import Image, ImageGrabimg_ready = ImageGrab.grab((x1, y1, x2, y2))# 截图img_ready.show()# 展示

效果如下:

Python中如何使用win32api实现自动唤醒并截图

这个功能可好用了,比如说你需要监控一个窗口的运行状况,不可能时时刻刻都去观察它,你可以使用while循环不断调用这个窗口截图脚本,先截图进行保存。

关于“Python中如何使用win32api实现自动唤醒并截图”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网Python频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Python中如何使用win32api实现自动唤醒并截图

本文链接: https://www.lsjlt.com/news/322276.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中如何使用win32api实现自动唤醒并截图
    这篇文章主要介绍“Python中如何使用win32api实现自动唤醒并截图”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中如何使用win32api实现自动唤醒并截图”文章能帮助大家解决问...
    99+
    2023-06-29
  • Python实现电脑唤醒后自动拍照截屏并发邮件通知
    目录背景具体实现 摄像头拍照 屏幕截图写邮件发邮件台式机唤醒后触发 python 脚本完成背景 背景是这样的, 我的家里台式机常年 休眠, 并配置了&n...
    99+
    2023-01-10
    Python电脑自动拍照截屏 Python电脑自动截屏 Python电脑截屏
  • 怎么用Python脚本实现电脑唤醒后自动拍照并截屏发邮件通知
    这篇文章主要介绍“怎么用Python脚本实现电脑唤醒后自动拍照并截屏发邮件通知”,在日常操作中,相信很多人在怎么用Python脚本实现电脑唤醒后自动拍照并截屏发邮件通知问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-07-05
  • 如何使用Vue实现拖动截图功能
    这篇文章主要介绍了如何使用Vue实现拖动截图功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何使用Vue实现拖动截图功能文章都会有所收获,下面我们一起来看看吧。一、安装html2canvas、vue-cro...
    99+
    2023-07-04
  • 如何使用Python自动爬取图片并保存
    小编给大家分享一下如何使用Python自动爬取图片并保存,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、准备工作用python来实现对百度图片的爬取并保存,以情...
    99+
    2023-06-22
  • 怎么使用PHP实现网页自动截图功能
    今天小编给大家分享一下怎么使用PHP实现网页自动截图功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、准备工作要实现网页...
    99+
    2023-07-05
  • 如何使用Python爬虫实现自动下载图片
    小编给大家分享一下如何使用Python爬虫实现自动下载图片,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、long(长整型)和float...
    99+
    2023-06-14
  • 如何使用html canvas实现网页截图并嵌入到PDF
    本文小编为大家详细介绍“如何使用html canvas实现网页截图并嵌入到PDF”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何使用html canvas实现网页截图并嵌入到PDF”文章能帮助大家解决疑...
    99+
    2024-04-02
  • 如何使用html2canvas.js实现页面截图并显示或上传
    小编给大家分享一下如何使用html2canvas.js实现页面截图并显示或上传,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、导入html2canvas.js这个不需要多说,可以从github上获取: https://g...
    99+
    2023-06-09
  • 如何使用HTML实现截图功能
    这篇文章主要介绍了如何使用HTML实现截图功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言最近项目需求总是有HTML页面生成图片功能,...
    99+
    2024-04-02
  • 如何使用python selenium实现自动化测试
    这篇文章主要介绍如何使用python selenium实现自动化测试,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、安装selenium打开命令控制符输入:pip install -U selenium火狐浏览器安...
    99+
    2023-06-15
  • 如何使用python+appium实现自动化测试
    这篇文章主要为大家展示了“如何使用python+appium实现自动化测试”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用python+appium实现自动化测试”这篇文章吧。1.什么是A...
    99+
    2023-06-22
  • bat中如何使用自动关机命令实现定时提醒你该睡觉了
    小编给大家分享一下bat中如何使用自动关机命令实现定时提醒你该睡觉了,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  1、小编曾经用过的解决方法,第一手机设闹钟。...
    99+
    2023-06-08
  • JavaCV如何实现读取视频信息及自动截取封面图
    这篇文章主要介绍了JavaCV如何实现读取视频信息及自动截取封面图的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaCV如何实现读取视频信息及自动截取封面图文章都会有所收获,下面我们一起来看看吧。javac...
    99+
    2023-07-02
  • 基于Python如何实现自动抠图小程序
    本篇文章为大家展示了基于Python如何实现自动抠图小程序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬...
    99+
    2023-06-26
  • 如何使用jQuery插件imgAreaSelect实现截图功能
    这篇文章主要介绍了如何使用jQuery插件imgAreaSelect实现截图功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何使用jQuery插件imgAreaSelect实现截图功能文章都会有所收获,下面...
    99+
    2023-07-04
  • Android如何使用ViewFlipper实现图片上下自动轮播
    这篇文章主要介绍了Android如何使用ViewFlipper实现图片上下自动轮播,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:先看效果:1.xml代码: ...
    99+
    2023-06-15
  • 利用Python实现自动生成图文并茂的数据分析
    目录前言1、一行命令,安装这个库2、核心代码模块导入①提前导入相关内容,并且注册字体②注册字体③生成报告前言 reportlab是Python的一个标准库,可以画图、画表格、编辑文字...
    99+
    2024-04-02
  • Python中怎么使用Playwright实现自动化
    这篇文章将为大家详细讲解有关Python中怎么使用Playwright实现自动化,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、Playwright介绍Playwright是一个强大的Py...
    99+
    2023-06-15
  • 使用Python怎么实现自动提取并收集信息
    本篇文章给大家分享的是有关使用Python怎么实现自动提取并收集信息,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。代码实现导入需要的库,包括百度的api接口跟cv2图像截图图库...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作