鼠标手辅助器

ops/2024/11/14 21:47:12/

鼠标发生移动后 ,静止在某位置指定时间后即可触发点击事件
支持多种点击事件,支持快捷键触发,支持自定义配置

有其他更好的思路 ,支持有偿定制,留言留下联系方式,看到会加你

python"># !/usr/bin/python3
# -*- coding:utf-8 -*-
"""
@author: JHC000abc@gmail.com
@file: test.py
@time: 2024/4/11 0:04
@desc:"""
import pyautogui
import keyboard
import time
from threading import Thread
import atexitclass MouseClick(object):""""""def __init__(self,time_click_interval):atexit.register(self.exit_handler)# 位置收集开关self.flag_open_close = True# 点击间隔self.time_click_interval = time_click_interval# 点击模式self.click_mode = 1# 此处静止 点击过self.forbidden = Falseself.thread = Thread(target=self.monitor_keyboard)self.thread.start()def exit_handler(self):"""程序退出自动执行:return:"""input("\n\n\n程序终止,回车退出")def monitor_keyboard(self):""":return:"""keyboard.on_press(self.on_combination_pressed_click)keyboard.on_press(self.on_combination_pressed_doubleClick)keyboard.on_press(self.on_combination_pressed_tripleClick)keyboard.on_press(self.on_combination_pressed_down)keyboard.on_press(self.on_combination_pressed_pause)keyboard.on_press(self.on_combination_pressed_click_right)keyboard.wait('esc')def monitor_mouse_move(self, x, y):""":param x::param y::return:"""if self.flag_open_close:if self.click_mode == 1:pyautogui.click(x, y)print(f"单击:x:{x}, y:{y}")elif self.click_mode == 2:pyautogui.doubleClick(x, y)print(f"双击:x:{x}, y:{y}")elif self.click_mode == 3:pyautogui.tripleClick(x, y)print(f"三击:x:{x}, y:{y}")elif self.click_mode == 4:pyautogui.rightClick(x, y)print(f"右键单击:x:{x}, y:{y}")def on_combination_pressed_pause(self,event):"""单击:param event::return:"""if keyboard.is_pressed('ctrl') and keyboard.is_pressed('`'):if self.flag_open_close:self.flag_open_close = Falseprint("【暂停】:ctrl+`")else:self.flag_open_close = Trueprint("【开启】:ctrl+`")def on_combination_pressed_click(self,event):"""单击:param event::return:"""if keyboard.is_pressed('ctrl') and keyboard.is_pressed('shift') and keyboard.is_pressed('1'):self.click_mode = 1print("【单击模式】:ctrl+shift+1")def on_combination_pressed_click_right(self,event):"""单击:param event::return:"""if keyboard.is_pressed('tab'):self.click_mode = 4print("【右键单击模式】:tab")def on_combination_pressed_doubleClick(self,event):"""双击:param event::return:"""if keyboard.is_pressed('ctrl') and keyboard.is_pressed('shift') and keyboard.is_pressed('2'):self.click_mode = 2print("【双击模式】:ctrl+shift+2")def on_combination_pressed_tripleClick(self,event):"""三击:param event::return:"""if keyboard.is_pressed('ctrl') and keyboard.is_pressed('shift') and keyboard.is_pressed('3'):self.click_mode = 3print("【三击模式】:ctrl+shift+3")def on_combination_pressed_down(self,event):"""长按 可拖动窗体:param event::return:"""if keyboard.is_pressed('alt'):pyautogui.mouseDown()print("【左键长按模式】:alt")def process(self):""":return:"""print("鼠标手辅助器 启动")print("点击间隔:",self.time_click_interval )prev_x, prev_y = pyautogui.position()while True:try:current_x, current_y = pyautogui.position()if current_x != prev_x or current_y != prev_y:prev_x, prev_y = current_x, current_yelse:start_time = time.time()while True:new_x, new_y = pyautogui.position()if new_x != current_x or new_y != current_y:self.forbidden = Falsebreakif time.time() - start_time >= self.time_click_interval:if not self.forbidden:self.monitor_mouse_move(new_x, new_y)self.forbidden = Truebreakif keyboard.is_pressed("esc"):print("【退出】ESC")breakexcept Exception as e:print("【错误】:请勿将鼠标移动到边缘区域")if __name__ == '__main__':time_click_interval = input("请输入点击间隔时间(单位:秒):")# time_click_interval = 3mc = MouseClick(float(time_click_interval))mc.process()

http://www.ppmy.cn/ops/17397.html

相关文章

laravel 使用微信的图片内容检测及文字内容检测

文字内容检测 const SEC_LABEL [100 > 正常,10001 > 广告,20001 > 时政,20002 > 色情,20003 > 辱骂,20006 > 违法犯罪,20008 > 欺诈,20012 > 低俗,20013 > 版权,21000 > 敏感,];/*** 检测文字安全* param $openid openid* param $content 检…

python 脚本头(PyCharm+python头部信息、py头部信息、python头信息、py头信息、py文件头部)

文章目录 参考PyCharm设置脚本头头部信息 参考 https://developer.aliyun.com/article/1166544 https://blog.csdn.net/Dontla/article/details/131743495 https://blog.csdn.net/dongyouyuan/article/details/54408413 PyCharm设置脚本头 打开pycharm,点击file–…

软件工程中的耦合和内聚

耦合 在软件工程中,耦合是一个重要的概念,用于描述模块或组件之间的相互依赖程度。 从非直接耦合到内容耦合的耦合性依次升高,所以非直接耦合是我们最想见到的结果,内容耦合是我们最不想见到的结果。 非直接耦合数据耦合标记耦…

web server apache tomcat11-11-Jasper 2 JSP Engine

前言 整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。 开源项目 从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。 系列文章 web server apache tomcat11-01-官方文档入门介绍 web…

HarmonyOS 实战开发-使用canvas实现图表系列之折线图

一、功能结构 实现一个公共组件的时候,首先分析一下大概的实现结构以及开发思路,方便我们少走弯路,也可以使组件更加容易拓展,维护性更强。然后我会把功能逐个拆开来讲,这样大家才能学习到更详细的内容。下面简单阐述…

美国服务器vs香港服务器,哪个网站部署打开更快一些?

网站打开速度受多种因素影响,包括服务器地理位置、网络质量、带宽等。用户距离服务器越近,访问速度越快。对于中国大陆用户而言,香港的服务器可能会提供更快的网站访问体验,因为香港距离大陆较近,且网络连接通常较好。…

科普:嵌入式代码软件在环(SiL)测试的可靠性

关键词:嵌入式系统、软件在环(SiL)、测试、生命周期 01.简介 当前,嵌入式系统开发的大趋势为通过软件实现大量的硬件功能,这导致软件的复杂程度显著上升——代码开发成本和风险也成倍增加。复用已有系统中的软件组件…

C#自定义窗体更换皮肤的方法:创建特殊窗体

目录 1.窗体更换皮肤 2.实例 (1)图片资源管理器Resources.Designer.cs设计 (2)Form1.Designer.cs设计 (3)Form1.cs设计 (4) 生成效果 (5)一个遗憾 1.窗…