让你看起来很忙

一、背景

在你用电脑时,许多即时通信程序或者游戏页面通过⼀段时间内鼠标指针不动(例如10分钟),来判断你空闲或离开了计算机。也许你想从计算机旁边溜走⼀段时间,但不想让别人发现你离开了,用Python编写⼀段脚本,每隔60秒稍微动⼀下鼠标指针。当你回到电脑桌前点击鼠标右键时,自动退出程序。

二、实现功能

1. pyautogui库来控制鼠标移动
2. time库来设置定时器
3. 一种方法来检测鼠标右键点击

程序运行后看起来像这样:

三、准备工作

pip install pyautogui pynput

四、工作原理

使用pynput.mouse库的Listener来监听鼠标右键点击事件

每60秒,脚本会:

记录当前鼠标位置
将鼠标向右移动2像素
然后将鼠标移回原位
这种微小的移动足以防止系统进入空闲状态,但又不会干扰正常使用
当检测到鼠标右键点击时,程序会设置标志并退出循环

五、完整代码

import pyautogui
import time
import sys
from pynput.mouse import Listener

# 全局变量,用于标记是否检测到鼠标右键点击
right_click_detected = False

def on_click(x, y, button, pressed):
    """监听鼠标点击事件"""
    global right_click_detected

    # 检测鼠标右键释放事件
    if button.name == 'right' and not pressed:
        right_click_detected = True
        # 停止监听
        return False

def main():
    print("防空闲程序已启动...")
    print("每60秒会轻微移动鼠标")
    print("点击鼠标右键可退出程序")

    # 启动鼠标监听线程
    listener = Listener(on_click=on_click)
    listener.start()

    try:
        while not right_click_detected:
            # 获取当前鼠标位置
            current_x, current_y = pyautogui.position()

            # 轻微移动鼠标(移动2像素,然后移回原位)
            pyautogui.moveRel(2, 0, duration=0.1)
            pyautogui.moveRel(-2, 0, duration=0.1)

            print(f"鼠标已移动 - 当前位置: {current_x}, {current_y}")

            # 等待60秒
            for _ in range(60):
                if right_click_detected:
                    break
                time.sleep(1)

    except KeyboardInterrupt:
        print("\n程序被用户中断")

    print("程序已退出")

if __name__ == "__main__":
    main()

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穿梭的编织者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值