【pynput】监控是否打开百度贴吧网页

文章目录

简介

有网友提过一个要求,用 Python 实现一个 电脑打开某网站就自动关机的功能。

想到的思路有两个:

【windows 平台】, 获取活动的窗口标题,如果标题里包含了某些网站名称, 那就使用关机命令 可以定时拉取标题, 也可以使用 pynput 监听鼠标点击,再获取 【本文就是这个实现】
还有一种就是监控网络状态 netstat 检索特定的 ip 地址, 如果有,则调用关机命令,需要事先知道网站的IP地址才行

Demo

说来也巧,这两天正好在学习 pynput、pyautogui 自动化方面的知识,tk 也轻微了解,正好拿来练手。

关机功能就用信息框的形式来代替,看看效果就行,关机就看不了啦 😄

pyautogui 的对话框不能完美置顶,最后不得不用 tkinter 来实现界面。

鼠标点击的时候,检查当前活动窗口的标题是否包含 '百度贴吧' 这几个汉字,如果有,就显示一个提示。

效果图:

python 复制代码
# 【鼠标右键退出程序】
import os
import pyautogui
from pynput import mouse
from tkinter import Tk, Label, StringVar

isShowing = False


def on_click(x, y, button, pressed):
    global isShowing

    if button == mouse.Button.right:
        # Stop listener
        window.destroy()
        listener.stop()
        return False

    win = pyautogui.getActiveWindow()
    if win and '百度贴吧' in win.title:
        func(x, y, '百度贴吧')
    else:
        isShowing = False
        window.geometry('0x0')


def func(x, y, txt):
    global isShowing
    if not isShowing:
        isShowing = True
        window.textvar.set(f'你正在浏览{txt}')
        if useShutdown:
            os.system('start /b shutdown -s -t 0')
        else:
            window.geometry(f'300x37+{x+10}+{y+10}')
    else:
        window.geometry(f'+{x+10}+{y+10}')


class MT(Tk):

    def __init__(self):
        super().__init__()
        # self.geometry('0x0')
        self.attributes('-topmost', 'true')
        self.overrideredirect(1)
        self.textvar = StringVar()

        label = Label(self, textvariable=self.textvar, foreground='red', background='black', width=280)
        label.pack()


if __name__ == '__main__':
    listener = mouse.Listener(on_click=on_click)
    listener.start()

    useShutdown = False

    window = MT()
    window.mainloop()
相关推荐
程序员小远3 小时前
软件测试之单元测试详解
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·测试用例
心无旁骛~4 小时前
python多进程和多线程问题
开发语言·python
星云数灵4 小时前
使用Anaconda管理Python环境:安装与验证Pandas、NumPy、Matplotlib
开发语言·python·数据分析·pandas·教程·环境配置·anaconda
计算机毕设匠心工作室4 小时前
【python大数据毕设实战】青少年抑郁症风险数据分析可视化系统、Hadoop、计算机毕业设计、包括数据爬取、数据分析、数据可视化、机器学习
后端·python
计算机毕设小月哥4 小时前
【Hadoop+Spark+python毕设】智能制造生产效能分析与可视化系统、计算机毕业设计、包括数据爬取、Spark、数据分析、数据可视化、Hadoop
后端·python·mysql
计算机毕设小月哥6 小时前
【Hadoop+Spark+python毕设】中风患者数据可视化分析系统、计算机毕业设计、包括数据爬取、Spark、数据分析、数据可视化、Hadoop
后端·python·mysql
Keep_Trying_Go6 小时前
基于Zero-Shot的目标计数算法详解(Open-world Text-specified Object Counting)
人工智能·pytorch·python·算法·多模态·目标统计
计算机毕设匠心工作室7 小时前
【python大数据毕设实战】强迫症特征与影响因素数据分析系统、Hadoop、计算机毕业设计、包括数据爬取、数据分析、数据可视化、机器学习、实战教学
后端·python·mysql
Trouville018 小时前
Pycharm软件初始化设置,字体和shell路径如何设置到最舒服
ide·python·pycharm