昨晚玩一个模拟经营的游戏,由于升级太慢我就不停的种树卖树来换取经验值。不过重复点击10几分钟后,实在受不了。网上本来准备找个鼠标自动点击的软件用用。结果没找到趁手的。如是自己写了个。

自己设置需要点击的一组动作,长按(100,200),点击(576,789),点击(750,550)。类似在对应坐标点操作鼠标。

原理非常简单,我就不贴代码了,主要说下如何控制鼠标点击事件。

注册系统辅助权限,这里会触发用户授权

let opts = NSDictionary(object: kCFBooleanTrue,forKey: kAXTrustedCheckOptionPrompt.takeUnretainedValue() as NSString) as CFDictionaryguard AXIsProcessTrustedWithOptions(opts) == true else { return }

鼠标事件

// 鼠标左键按下
let mouseDown = CGEvent(mouseEventSource: nil,mouseType: .leftMouseDown,mouseCursorPosition: CGPoint(x: 200, y: 300),mouseButton: .left
)
mouseDown?.post(tap: .cghidEventTap)// 鼠标左键抬起
let mouseUp = CGEvent(mouseEventSource: nil,mouseType: .leftMouseUp,mouseCursorPosition: CGPoint(x: 200, y: 300),mouseButton: .left
)
mouseUp?.post(tap: .cghidEventTap)

以上两个事件,组成了一个鼠标左键在坐标(200,300)点击事件

MouseType支持类型

/* Constants that specify the different types of input events. */
public enum CGEventType : UInt32 {/* The null event. */case null/* Mouse events. */case leftMouseDowncase leftMouseUpcase rightMouseDowncase rightMouseUpcase mouseMovedcase leftMouseDraggedcase rightMouseDragged/* Keyboard events. */case keyDowncase keyUpcase flagsChanged/* Specialized control devices. */case scrollWheelcase tabletPointercase tabletProximitycase otherMouseDowncase otherMouseUpcase otherMouseDragged/* Out of band event types. These are delivered to the event tap callbackto notify it of unusual conditions that disable the event tap. */case tapDisabledByTimeoutcase tapDisabledByUserInput
}

长按事件

有人可能会留意到上述没有长按事件

长按事件就是 .leftMouseDown, 达到你需要长按的时间后,再触发.leftMouseUp

扩展

一般情况你做好一系列点击组合后,是用快捷键触发开始的。那么MacOS中如何监听系统快捷键呢或者键盘事件?

添加系统键盘监听

NSEvent.addGlobalMonitorForEvents(matching: .keyDown, handler: {[unowned self] event in// num1:18, num2:19if event.keyCode == 18 {// self.startAction()}
})

MacOS获取辅助功能权限控制鼠标点击事件相关推荐

  1. python 控制鼠标点击需要100ms为什么_用 Python3 和 OpenCV 替我玩一玩微信小游戏 — 跳一跳 (这算外挂么)...

    0 瞎弄 我知道你们喜欢先看效果 手残的我,始终跳不过你们这些超过 50 分的大佬.想起最近在用 Python 学习 ML (Mechine Learning, 机器学习) ,怎么用没学会,倒是里面神 ...

  2. AHK 键盘控制鼠标点击屏幕不同位置

    按键控制鼠标点击屏幕特定位置 按键控制重设屏幕点击位置 按键显示当前鼠标在屏幕上的位置 V1.0代码功能: 按 A 和 D 分别对应点击两个单独的屏幕坐标 按 Q 和 E分别对应重新设置两个单独的屏幕 ...

  3. android 模拟点击localinstrumentation,Android Instrumentation模拟鼠标点击事件

    看了几遍网上的博客一直没有 模拟出鼠标点击事件和按钮事件,后来抱着试试态度再重试的时候终于有所斩获.下面把具体的情况记录一下: 首先我们必须了解类 Instrumentation: Instrumen ...

  4. php鼠标点击事件,javascript模拟鼠标点击事件的实例代码

    javascript触发模拟鼠标点击事件 事件触发器就是用来触发某个元素下的某个事件,IE下fireEvent方法,高级浏览器(chrome,firefox等)有dispatchEvent方法. 一般 ...

  5. jQuery鼠标点击事件

    概念 个人理解: jQuery鼠标点击事件是最常用的事件之一,当用户使用鼠标在浏览器窗口或元素上进行点击交互时触发的事件,都属于鼠标点击事件的范围.常见的鼠标操作有:单击.双击.右键等等. click ...

  6. css禁用鼠标点击事件

    1.css禁用鼠标点击事件 .disabled { pointer-events: none; } 转载于:https://www.cnblogs.com/jiangtuzi/p/5728230.ht ...

  7. 获取子页面iframe的点击事件及iframe跨域的交互

    1.获取子页面iframe的点击事件 1.1.获取iframe var frame = document.getElementById('addrClick2'); 1.2.获取点击事件 var If ...

  8. [css] 怎样用纯CSS实现禁止鼠标点击事件?

    [css] 怎样用纯CSS实现禁止鼠标点击事件? pointer-events: none; 是css3新出现的属性,意思就是禁止鼠标点击事件,当元素中有这一属性时,链接.点击事件统统失效. 个人简介 ...

  9. 【Qt串口调试助手】1.3 - 重写ComboBox下拉框的鼠标点击事件,实现点击下拉框扫描可用串口

    由于ComboBox没有鼠标点击信号,所以如果想实现点击下拉框响应,需要重写ComboBox下拉框的鼠标点击事件.在点击事件中,添加扫描可用串口代码,实现点击下拉框时重新扫描串口.并且下拉框内容输出端 ...

  10. QT之鼠标点击事件学习

    最近在学习点击鼠标事件,在这分享给大家 window.h中的配置 #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow& ...

最新文章

  1. 栖息在生态办公室,裸心社与USGBC达成战略合作
  2. 将Windows8安装在手持终端上
  3. MAVEN_OPTS=-Xms128m -Xmx512m
  4. mysql长连接与短连接
  5. php邮件发送tp,在Thinkphp3.2 中使用PHPMailer 发送邮件
  6. 浏览器兼容问题及解决方案
  7. JVM调优_堆内存溢出和非堆内存溢出
  8. JAVA并发,线程异常捕获
  9. linux内核通俗理解,简洁明了!高手带你理解ARM-Linux的启动过程
  10. NodeJs之npm
  11. Android WorldWind的使用与添加Geoserver影像(一)
  12. 郝斌 mysql_郝斌 SqlServer2005 学习笔记
  13. Flixel横板游戏制作教程(九)—SquashingthePlayer(挤压Player)
  14. 信息编码的运用——如何用二进制改图
  15. CF487E Tourists
  16. 微信小程序微信授权登录,使用getPhoneNumber()部分手机无法获取动态令牌code(Taro)
  17. 三子棋小游戏(经过轻微改编可变为五子棋)
  18. 2020.10.08丨全长转录组之参考基因组比对
  19. YT8511H的原理图设计
  20. HDU - 3194 Median

热门文章

  1. bat获取管理员权限运行
  2. 植物大战僵尸修改游戏存档
  3. ObjectARX 2016 安装心得
  4. 从coursera网站自动下载网课视频(Linux中bash操作)
  5. 百练1724ROADS
  6. rpm安装mysql8(通过脚本快速配置)
  7. 安科瑞导轨表DDS/DTS/DTZ的功能特点
  8. 2021-2026年中国畜牧业发展环境分析及投资前景预测报告
  9. mysql spj_MySQL查询优化器--非SPJ优化--ORDERBY优化
  10. 210_Python+OpenCV_04_模糊(均值、中值、高斯)