使用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实现高效音频封面批量删除工具

    Python实现高效音频封面批量删除工具

    在数字音乐管理过程中,音频文件内嵌的封面图片往往会占用额外存储空间,本文将介绍一款基于Python和PyQt5开发的跨平台音频封面删除工具,大家可以了解一下
    2025-05-05
  • python3 webp转gif格式的实现示例

    python3 webp转gif格式的实现示例

    这篇文章主要介绍了python3 webp转gif格式的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Python 实现一个计时器

    Python 实现一个计时器

    这篇文章主要介绍了Python 实现一个计时器的方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • 安装python及pycharm的教程图解

    安装python及pycharm的教程图解

    本文通过图文并茂的形式给大家介绍了安装python及pycharm的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • Python全栈之文件操作

    Python全栈之文件操作

    这篇文章主要为大家介绍了Python文件操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助<BR>
    2021-11-11
  • Django model update的多种用法介绍

    Django model update的多种用法介绍

    Django开发过程中对表(model)的增删改查是最常用的功能之一,本文介绍笔者在使用model update过程中遇到的那些事
    2019-07-07
  • Python运行提示缺少模块问题解决方案

    Python运行提示缺少模块问题解决方案

    这篇文章主要介绍了Python运行提示缺少模块问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • python中3种等待元素出现的方法总结

    python中3种等待元素出现的方法总结

    发现太多人不会用等待了,小编今天实在是忍不住要给大家讲讲等待的必要性,下面这篇文章主要给大家介绍了关于python中3种等待元素出现的方法,需要的朋友可以参考下
    2022-03-03
  • Python整型运算之布尔型、标准整型、长整型操作示例

    Python整型运算之布尔型、标准整型、长整型操作示例

    这篇文章主要介绍了Python整型运算之布尔型、标准整型、长整型操作,结合具体实例形式分析了Python中布尔型、标准整型、长整型等相关运算技巧,代码备有详尽注释,需要的朋友可以参考下
    2017-07-07
  • 解决pytorch trainloader遇到的多进程问题

    解决pytorch trainloader遇到的多进程问题

    这篇文章主要介绍了解决pytorch trainloader遇到的多进程问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05

最新评论