当前位置: 首页 > news >正文

鼠标连点器

操作说明

环境依赖

  1. 有python
  2. 有pyautogui
    # 安装pyautogui命令
    pip3 install pyautogui
    

警告

  1. 仅在windows进行了测试
  2. 两次连续的单击左键会变成双击左键
    因为使用了pyautogui内部默认的延时
  3. 若不支持pyautogui,不提供解决方案

运行示例

示例一:执行5次点击左键
在这里插入图片描述
示例二:先点击左键,再点击右键(执行5次)
在这里插入图片描述

运行流程

流程

  1. 解析参数
  2. 生成鼠标操作列表
  3. 生成鼠标点击的位置列表
  4. 开始执行点击命令

主函数

def main():
  """主函数"""
  try:
    args = ArgParse() # 解析参数
    clickList = GetClickList(args.num) # 生成鼠标操作列表
    positionList = GetPositionList(args.num) if args.move else None # 生成鼠标点击的位置列表
    RunClick(clickList, positionList, args.repeat) # 开始执行点击命令
  except Exception as e:
    print(f'Error: {e}')

功能模块

参数解析

解析输入参数,支持的命令有:

  1. 配置单次运行执行的鼠标操作数量:-n或–num后跟数字
  2. 配置重复运行的次数:-r或–repeat后跟数字
  3. 配置是否需要移动鼠标:-m或–move, 默认不移动,加了之后移动
def ArgParse():
  """命令行参数解析"""
  import argparse

  parser = argparse.ArgumentParser(description='Click mouse')
  parser.add_argument('-n', '--num', type=int, help='Number of click commands')
  parser.add_argument('-r', '--repeat', type=int, help='Number of repeat times')
  parser.add_argument('-m', '--move', action='store_true', default=False, help='Move mouse to position before clicking')
  args = parser.parse_args()

  # 参数校验
  if args.num is None or args.num <= 0:
    raise ValueError('Invalid or missing click command number (--num)')
  if args.repeat is None or args.repeat <= 0:
    raise ValueError('Invalid or missing repeat times (--repeat)')

  return args

生成鼠标操作列表

依次输入执行的鼠标操作,输入错误则重新输入

def GetClickList(num):
  """获取点击命令列表"""
  print('Select your clock command:')
  print('1: click left')
  print('2: click left double')
  print('3: click right')

  clickOption = {
    1: pyautogui.click,
    2: pyautogui.doubleClick,
    3: pyautogui.rightClick
  }
  clickList = []

  for i in range(num):
    while True:
      try:
        print(f'Input your {i+1} click command (1/2/3):')
        click = int(input())
        if click not in clickOption:
          raise ValueError('Invalid click command! Please input 1, 2, or 3.')
        clickList.append(clickOption[click])
        break
      except ValueError as e:
        print(f'Error: {e}')

  return clickList

生成鼠标点击的位置列表

当配置了需要鼠标移动时,生成点击位置列表。每按一次回车,获取一个位置。

def GetPositionList(num):
  """获取点击位置列表"""
  positionList = []
  for i in range(num):
    print(f'Get your {i+1} click position: Press Enter to capture the current mouse position.')
    input()
    x, y = pyautogui.position()
    positionList.append((x, y))
  return positionList

开始点击

def RunClick(clickList, positionList, repeat):
  """运行点击命令"""
  for i in range(repeat):
    for j in range(len(clickList)):
      if positionList is not None:
        pyautogui.moveTo(positionList[j][0], positionList[j][1])
      clickList[j]() # 执行点击命令
    print(f'Run {i+1}/{repeat} times')

相关文章:

  • js算法基础-01
  • python日期和时间、文件和目录操作
  • openstack云平台部署(脚本版)
  • 2025 年浙江保安员职业资格考试高效备考指南​
  • 学会把选择题变成填空题:如何主动设计人生答案
  • BACnet协议+设备数据接入
  • 2025 数字中国创新大赛数字安全赛道数据安全产业积分争夺赛初赛-东部赛区WriteUp
  • AI大模型与未来社会结构的重构:从工具到共生体
  • 代码随想录算法训练营第十一天
  • 前端AJAX请求上传下载进度监控指南详解与完整代码示例
  • ModuleNotFoundError: No module named ‘pandas‘
  • 苹果在中国组装要交关税吗
  • 顺序表——C语言实现
  • Python•判断循环
  • 嵌入式C语言11(宏/程序的编译过程)
  • Linux内核中TCP协议栈的实现:tcp_close函数的深度剖析
  • 深入理解Socket编程:构建简单的计算器服务器
  • Vim搜索和替换
  • 图解AUTOSAR_SWS_FlexRayInterface
  • 京东云智能体平台joybuilder v3.0.0测试
  • 网站建设应注重实用性/百度竞价托管哪家好
  • 微信网站是什么意思/谷歌 chrome 浏览器
  • 政府门户网站建设的必要性/站长综合查询工具
  • 网站咨询界面设计/新网站应该怎么做seo
  • 老外把金文做的网站翻译叫什么/免费seo网站诊断
  • 华强电子网官网/山东东营网络seo