
KEY_CODE_SHIFT或KEY_CODE_A – 这些都是在某处定义的数字常量.
我需要把这些常量转换成CGKeyCode值.
我目前的尝试使用类似于this SO question的代码.问题是它只适用于可打印的字符.如果一切都失败了,我不会对转换进行编码,但这意味着我需要一个可能的CGKeyCode值的表,我还没有找到.
有任何想法吗?
解决方法 以下是模拟Cmd-S *** 作的代码:CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStateCombinedSessionState);CGEventRef saveCommandDown = CGEventCreateKeyboardEvent(source,(CGKeyCode)1,YES);CGEventSetFlags(saveCommandDown,kCGEventFlagMaskCommand);CGEventRef saveCommandUp = CGEventCreateKeyboardEvent(source,NO);CGEventPost(kCGAnnotatedSessionEventTap,saveCommandDown);CGEventPost(kCGAnnotatedSessionEventTap,saveCommandUp);CFRelease(saveCommandUp);CFRelease(saveCommandDown);CFRelease(source);
CGKeyCode只不过是一个无符号整数:
typedef uint16_t CGKeyCode; //From CGRemoteOperation.h
你真正的问题是将一个角色(可能是Nsstring)转换成一个键码.幸运的是,Shortcut Recorder项目的代码将在SRKeyCodeTransformer.m文件中进行.将字符串转换为键码非常好,然后重新打开.
以上是内存溢出为你收集整理的c – 在Mac OS X中模拟按键事件全部内容,希望文章能够帮你解决c – 在Mac OS X中模拟按键事件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)