使用Python一键实现屏幕监控软件

 更新时间:2025年08月03日 10:22:41   作者:PythonFun  
这篇文章主要为大家详细介绍了如何使用Python一键实现屏幕监控软件,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

不得不说,现在的人工智能太厉害了,只需要简单地描述一下你的请求,就可以迅速为你生成一个带界面的软件,根本就不需要自己亲自写代码。你只需要知道用哪些模块,实现什么功能,有什么要求就可以了。

一、问题的由来

这不,我今天看到学校下发了暑期培训的通知,需要我们积累10个学时的学习记录,说白了就是看视频。如果一直让它自动播放的话,播完了会弹窗,提示你点击确定,然后进入下一条视频,如果不点击的话,就无法自动播放下一条视频。

于时,我就想让人工智能给我生成一个带界面的Python工具,主要用于监控我的视频界面有没有弹出确认窗口,弹出了就点击一次,不弹出就不点击,为了能尽快执行,我设置了每隔30秒进行一次点击。

软件界面

二、问题的解决

于是,我直接向deepseek发问,但发现它响应太慢,就去了http://bot.n.cn(纳米ai),让它给用pyautogui和tkinter来编写一个带界面的屏幕监控软件,实现每隔30秒来监控一下屏幕上有没有confirm.png这个图片,有的话就点击。这个纳米ai反应速度很快,马上给了我解决方案。

给出解决思路

不仅给出了功能描述,而且还给出了安装pyautogui的方法。

同时,给出了完整的代码:

import tkinter as tk
import pyautogui
import threading
import time
import os

class ScreenMonitorApp:
    def __init__(self, root):
        self.root  = root
        self.root.title(" 屏幕图像监控器")
        self.root.geometry("400x200") 
        self.root.resizable(False,  False)

        # 状态变量
        self.running  = False
        self.monitor_thread  = None

        # 图像路径(可修改)
        self.image_path  = "confirm.png" 

        # 检查图像是否存在
        if not os.path.exists(self.image_path): 
            print(f"警告:图像文件 {self.image_path}  不存在,请确保它在当前目录中。")

        # GUI 元素
        self.title_label  = tk.Label(root, text="屏幕图像监控工具", font=("Arial", 16))
        self.title_label.pack(pady=10) 

        self.status_label  = tk.Label(root, text="状态:未运行", fg="gray")
        self.status_label.pack(pady=5) 

        self.btn_frame  = tk.Frame(root)
        self.btn_frame.pack(pady=20) 

        self.start_btn  = tk.Button(self.btn_frame,  text="开始监控", width=10, height=2, bg="green", fg="white", command=self.start_monitoring) 
        self.start_btn.grid(row=0,  column=0, padx=10)

        self.stop_btn  = tk.Button(self.btn_frame,  text="停止监控", width=10, height=2, bg="red", fg="white", command=self.stop_monitoring,  state=tk.DISABLED)
        self.stop_btn.grid(row=0,  column=1, padx=10)

        self.info_label  = tk.Label(root, text="每30秒检测一次 confirm.png",  font=("Arial", 9))
        self.info_label.pack(pady=5) 

    def click_image(self):
        """查找并点击图像"""
        try:
            # 多尺度匹配,提高识别成功率
            location = pyautogui.locateOnScreen(self.image_path,  confidence=0.9)
            if location:
                center_x, center_y = pyautogui.center(location) 
                pyautogui.click(center_x,  center_y)
                print(f"✅ 已点击图像:{self.image_path} ,位置 ({center_x}, {center_y})")
                self.update_status(" 已检测并点击", "blue")
            else:
                print("  未找到图像,继续监控...")
        except pyautogui.ImageNotFoundException:
            print("❌ 图像未找到异常")
        except Exception as e:
            print(f"❌ 其他错误:{e}")

    def monitor_loop(self):
        """监控主循环"""
        while self.running: 
            self.click_image() 
            time.sleep(30)   # 每30秒检测一次

    def start_monitoring(self):
        """启动监控线程"""
        if not self.running: 
            self.running  = True
            self.update_status(" 正在运行", "green")
            self.start_btn.config(state=tk.DISABLED) 
            self.stop_btn.config(state=tk.NORMAL) 

            # 启动后台线程防止阻塞 GUI
            self.monitor_thread  = threading.Thread(target=self.monitor_loop,  daemon=True)
            self.monitor_thread.start() 

    def stop_monitoring(self):
        """停止监控"""
        self.running  = False
        self.update_status(" 已停止", "red")
        self.start_btn.config(state=tk.NORMAL) 
        self.stop_btn.config(state=tk.DISABLED) 

    def update_status(self, text, color):
        """更新状态标签"""
        self.status_label.config(text=f" 状态:{text}", fg=color)


# 主程序入口
if __name__ == "__main__":
    root = tk.Tk()
    app = ScreenMonitorApp(root)
    root.mainloop() 

代码运行的结果如下,设置了界面显示,以及开始监控和停止监控两个按钮,同时提示每隔30秒检测一下界面是否和本地的confirm.png图片一致。

软件界面

confirm.png是我们在视频结束后,专门截取的,如下图所示:

确定按钮

经过测试,软件运行正常,甚至还可以监测到图片的位置信息,并进行日志的显示。

监控日志

三、学后总结

1. 把大语言模型和Python结合起来,可以爆发出惊人的潜力。在人工智能时代,学习不再是难事,只要你愿意学习,有想法,会提问,总能够找到解决问题的办法。

2. 虽然有大语言模型,但并不是说基础知识不重要了,如果有扎实的基础,就可以更好地发挥大语言模型的潜能,找到更接这自己想法的答案,这样也可以对生成的代码进行必要的判断、改写,从而少走弯路。

3. DeepSeek虽然厉害,但不得不说纳米AI做的更好,不仅速度快而给出的内容更加丰富,扩展性也更强,所以我们也不必光盯着DeepSeek和ChatGPT,国内的纳米AI,metaso,Kimi都是不错的人工智能平台。

到此这篇关于使用Python一键实现屏幕监控软件的文章就介绍到这了,更多相关Python屏幕监控内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python脚本实现音频m4a格式转成MP3格式的实例代码

    python脚本实现音频m4a格式转成MP3格式的实例代码

    这篇文章主要介绍了python脚本实现音频m4a格式转成MP3格式的实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • Python使用wget实现下载网络文件功能示例

    Python使用wget实现下载网络文件功能示例

    这篇文章主要介绍了Python使用wget实现下载网络文件功能,简单介绍了wget安装以及Python使用wget下载tar格式网络文件并进行解压处理相关操作技巧,需要的朋友可以参考下
    2018-05-05
  • Python用threading实现多线程详解

    Python用threading实现多线程详解

    这篇文章主要给大家介绍了Python用threading实现多线程的方法示例,文中介绍的很详细,对大家具有一定的参考借鉴价值,有需要的朋友们下面来一起学习学习吧。
    2017-02-02
  • Python连接数据库并批量插入包含日期记录的操作

    Python连接数据库并批量插入包含日期记录的操作

    这篇文章主要介绍了Python连接数据库并批量插入包含日期记录的操作,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • Python optparse模块及简单使用

    Python optparse模块及简单使用

    optparse,是一个更够让程序设计人员轻松设计出简单明了、易于使用、符合标准的Unix命令例程式的Python模块,生成使用和帮助信息,这篇文章主要介绍了Python optparse模块简单使用,需要的朋友可以参考下
    2022-12-12
  • python类方法中的self关键字使用

    python类方法中的self关键字使用

    这篇文章主要介绍了python类方法中的self关键字使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • python 制作手机归属地查询工具(附源码)

    python 制作手机归属地查询工具(附源码)

    这篇文章主要介绍了python 制作手机归属地查询工具,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-03-03
  • 详解在OpenCV中如何使用图像像素

    详解在OpenCV中如何使用图像像素

    像素是计算机视觉中图像的重要属性。它们是表示图像中特定空间中光的颜色强度的数值,是图像中数据的最小单位。本文将详细为大家介绍如何在OpenCV中使用图像像素,感兴趣的可以了解一下
    2022-03-03
  • Python中使用 zipfile创建文件压缩工具

    Python中使用 zipfile创建文件压缩工具

    这篇文章主要介绍了Python中使用zipfile创建文件压缩工具,通过使用 wxPython 模块,我们创建了一个简单而实用的文件压缩工具,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的ca参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • Python装饰器有哪些绝妙的用法

    Python装饰器有哪些绝妙的用法

    本文主要介绍了Python装饰器有哪些绝妙的用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07

最新评论