使用Python一鍵實(shí)現(xiàn)屏幕監(jiān)控軟件
不得不說,現(xiàn)在的人工智能太厲害了,只需要簡單地描述一下你的請(qǐng)求,就可以迅速為你生成一個(gè)帶界面的軟件,根本就不需要自己親自寫代碼。你只需要知道用哪些模塊,實(shí)現(xiàn)什么功能,有什么要求就可以了。
一、問題的由來
這不,我今天看到學(xué)校下發(fā)了暑期培訓(xùn)的通知,需要我們積累10個(gè)學(xué)時(shí)的學(xué)習(xí)記錄,說白了就是看視頻。如果一直讓它自動(dòng)播放的話,播完了會(huì)彈窗,提示你點(diǎn)擊確定,然后進(jìn)入下一條視頻,如果不點(diǎn)擊的話,就無法自動(dòng)播放下一條視頻。
于時(shí),我就想讓人工智能給我生成一個(gè)帶界面的Python工具,主要用于監(jiān)控我的視頻界面有沒有彈出確認(rèn)窗口,彈出了就點(diǎn)擊一次,不彈出就不點(diǎn)擊,為了能盡快執(zhí)行,我設(shè)置了每隔30秒進(jìn)行一次點(diǎn)擊。

軟件界面
二、問題的解決
于是,我直接向deepseek發(fā)問,但發(fā)現(xiàn)它響應(yīng)太慢,就去了http://bot.n.cn(納米ai),讓它給用pyautogui和tkinter來編寫一個(gè)帶界面的屏幕監(jiān)控軟件,實(shí)現(xiàn)每隔30秒來監(jiān)控一下屏幕上有沒有confirm.png這個(gè)圖片,有的話就點(diǎn)擊。這個(gè)納米ai反應(yīng)速度很快,馬上給了我解決方案。

給出解決思路
不僅給出了功能描述,而且還給出了安裝pyautogui的方法。
同時(shí),給出了完整的代碼:
import tkinter as tk
import pyautogui
import threading
import time
import os
class ScreenMonitorApp:
def __init__(self, root):
self.root = root
self.root.title(" 屏幕圖像監(jiān)控器")
self.root.geometry("400x200")
self.root.resizable(False, False)
# 狀態(tài)變量
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} 不存在,請(qǐng)確保它在當(dāng)前目錄中。")
# GUI 元素
self.title_label = tk.Label(root, text="屏幕圖像監(jiān)控工具", font=("Arial", 16))
self.title_label.pack(pady=10)
self.status_label = tk.Label(root, text="狀態(tài):未運(yùn)行", 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="開始監(jiān)控", 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="停止監(jiān)控", 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秒檢測(cè)一次 confirm.png", font=("Arial", 9))
self.info_label.pack(pady=5)
def click_image(self):
"""查找并點(diǎn)擊圖像"""
try:
# 多尺度匹配,提高識(shí)別成功率
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"? 已點(diǎn)擊圖像:{self.image_path} ,位置 ({center_x}, {center_y})")
self.update_status(" 已檢測(cè)并點(diǎn)擊", "blue")
else:
print(" 未找到圖像,繼續(xù)監(jiān)控...")
except pyautogui.ImageNotFoundException:
print("? 圖像未找到異常")
except Exception as e:
print(f"? 其他錯(cuò)誤:{e}")
def monitor_loop(self):
"""監(jiān)控主循環(huán)"""
while self.running:
self.click_image()
time.sleep(30) # 每30秒檢測(cè)一次
def start_monitoring(self):
"""啟動(dòng)監(jiān)控線程"""
if not self.running:
self.running = True
self.update_status(" 正在運(yùn)行", "green")
self.start_btn.config(state=tk.DISABLED)
self.stop_btn.config(state=tk.NORMAL)
# 啟動(dòng)后臺(tái)線程防止阻塞 GUI
self.monitor_thread = threading.Thread(target=self.monitor_loop, daemon=True)
self.monitor_thread.start()
def stop_monitoring(self):
"""停止監(jiān)控"""
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):
"""更新狀態(tài)標(biāo)簽"""
self.status_label.config(text=f" 狀態(tài):{text}", fg=color)
# 主程序入口
if __name__ == "__main__":
root = tk.Tk()
app = ScreenMonitorApp(root)
root.mainloop() 代碼運(yùn)行的結(jié)果如下,設(shè)置了界面顯示,以及開始監(jiān)控和停止監(jiān)控兩個(gè)按鈕,同時(shí)提示每隔30秒檢測(cè)一下界面是否和本地的confirm.png圖片一致。

軟件界面
confirm.png是我們?cè)谝曨l結(jié)束后,專門截取的,如下圖所示:

確定按鈕
經(jīng)過測(cè)試,軟件運(yùn)行正常,甚至還可以監(jiān)測(cè)到圖片的位置信息,并進(jìn)行日志的顯示。

監(jiān)控日志
三、學(xué)后總結(jié)
1. 把大語言模型和Python結(jié)合起來,可以爆發(fā)出驚人的潛力。在人工智能時(shí)代,學(xué)習(xí)不再是難事,只要你愿意學(xué)習(xí),有想法,會(huì)提問,總能夠找到解決問題的辦法。
2. 雖然有大語言模型,但并不是說基礎(chǔ)知識(shí)不重要了,如果有扎實(shí)的基礎(chǔ),就可以更好地發(fā)揮大語言模型的潛能,找到更接這自己想法的答案,這樣也可以對(duì)生成的代碼進(jìn)行必要的判斷、改寫,從而少走彎路。
3. DeepSeek雖然厲害,但不得不說納米AI做的更好,不僅速度快而給出的內(nèi)容更加豐富,擴(kuò)展性也更強(qiáng),所以我們也不必光盯著DeepSeek和ChatGPT,國內(nèi)的納米AI,metaso,Kimi都是不錯(cuò)的人工智能平臺(tái)。
到此這篇關(guān)于使用Python一鍵實(shí)現(xiàn)屏幕監(jiān)控軟件的文章就介紹到這了,更多相關(guān)Python屏幕監(jiān)控內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python腳本實(shí)現(xiàn)音頻m4a格式轉(zhuǎn)成MP3格式的實(shí)例代碼
這篇文章主要介紹了python腳本實(shí)現(xiàn)音頻m4a格式轉(zhuǎn)成MP3格式的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10
Python使用wget實(shí)現(xiàn)下載網(wǎng)絡(luò)文件功能示例
這篇文章主要介紹了Python使用wget實(shí)現(xiàn)下載網(wǎng)絡(luò)文件功能,簡單介紹了wget安裝以及Python使用wget下載tar格式網(wǎng)絡(luò)文件并進(jìn)行解壓處理相關(guān)操作技巧,需要的朋友可以參考下2018-05-05
Python用threading實(shí)現(xiàn)多線程詳解
這篇文章主要給大家介紹了Python用threading實(shí)現(xiàn)多線程的方法示例,文中介紹的很詳細(xì),對(duì)大家具有一定的參考借鑒價(jià)值,有需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。2017-02-02
Python連接數(shù)據(jù)庫并批量插入包含日期記錄的操作
這篇文章主要介紹了Python連接數(shù)據(jù)庫并批量插入包含日期記錄的操作,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-06-06
Python中使用?zipfile創(chuàng)建文件壓縮工具
這篇文章主要介紹了Python中使用zipfile創(chuàng)建文件壓縮工具,通過使用 wxPython 模塊,我們創(chuàng)建了一個(gè)簡單而實(shí)用的文件壓縮工具,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的ca參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09

