python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python屏幕监控

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

作者: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屏幕监控内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文