mac鼠标键盘的反向控制
来源:互联网 发布:windows八寸平板有哪些 编辑:程序博客网 时间:2024/06/07 01:09
- 目标
- 实现方式
- 步骤
- 关键代码
- 键盘的操作
- 鼠标的操作
- 出现的问题
目标
实现mac的反向控制。
实现方式
通过Qt调用mac api的方式。。
步骤
1,控制端的鼠标键盘消息全部映射成Qt的键盘鼠标值,也就是消息传输的是Qt的值。(这一步其实不用做什么,直接获取就是了)
2,将Qt的值再转换成当前系统所对应的值。
关键代码
键盘的操作
CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStatePrivate);CGEventRef A = CGEventCreateKeyboardEvent(source, kVK_ANSI_A, true);CGEventSetFlags(A, kCGEventFlagMaskCommand);//这里按下了command键CGEventTapLocation location = kCGHIDEventTap;//发送事件CGEventPost(location, A);CFRelease(A);CFRelease(source);
参考:
macOS上模拟发送键盘事件
Mac OS objectc关于代码模拟键盘输入
建议:因为输入一个字母是两个动作,按下和抬起。因此建议,在收到按下信号的时候,把抬起动作也一起做了。
鼠标的操作
- (void)buttonClick{ CGPoint pt = CGPointMake(216, 80); PostMouseEvent(kCGMouseButtonLeft, kCGEventLeftMouseDown, pt); PostMouseEvent(kCGMouseButtonLeft, kCGEventLeftMouseUp, pt); sleep(2); [self writeString:@"Hello" withFlags:0];}void PostMouseEvent(CGMouseButton button, CGEventType type, const CGPoint point){ CGEventRef theEvent = CGEventCreateMouseEvent(NULL, type, point, button); CGEventSetType(theEvent, type); CGEventPost(kCGHIDEventTap, theEvent); CFRelease(theEvent);}
双击
Performing a double click using CGEventCreateMouseEvent()
参考
Mac下的按键精灵实现
出现的问题
鼠标右击事件的时候,主程序卡死。然后按一下鼠标就好了。我怀疑是事件循环导致的问题。这里貌似处理了这种情况。
还有就是我用xcode创建了一个macDemo,鼠标的事件没有执行。我怀疑也是这里的问题。
阅读全文
0 0
- mac鼠标键盘的反向控制
- 键盘控制鼠标的方法
- Java控制鼠标和键盘的方法
- Java控制鼠标和键盘的方法
- 如何控制鼠标和键盘的操作
- 【Unity3D】键盘鼠标控制视角的移动
- 加入键盘鼠标控制的代码
- 用键盘控制鼠标
- JAVA控制鼠标键盘
- 键盘控制鼠标
- python键盘、鼠标控制
- 键盘、鼠标控制小球
- C#控制鼠标键盘
- 如何用键盘控制鼠标
- WIN7用键盘控制鼠标
- 下拉框键盘鼠标控制
- python:控制鼠标和键盘
- Java中用Robot类控制鼠标和键盘的方法
- 小白福利!思维导图超详细绘制教程
- 一个三本学生的面试之旅
- DOM4J解析XML
- Nginx——5
- iOS推送流程(APNS)
- mac鼠标键盘的反向控制
- 学 Win32 汇编[2]: 最简单的 Win32 程序
- android--Git安装和使用
- ajax一些错误错误
- SpringMVC学习笔记
- IDEA入门级使用教程----你怎么还在用eclipse?
- mysql根据时间取前后几秒,几分钟,几小时,几天,几月,几年
- python一些常用函数
- android搭环境