- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试使用 CGEventCreateKeyboardEvent
和 CGEventPost
为系统范围的键盘快捷键(如 control-F4)发送击键,但没有成功。使用 CGPostKeyboardEvent
发送此类击键效果很好,但该方法已被弃用,我正在寻找替代方法。
CGPostKeyboardEvent((CGCharCode)0, (CGKeyCode)118/*F4*/, true); // worked
CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(NULL, (CGKeyCode)118/*F4*/, true)); // doesn't work
有人会告诉我哪里出了问题或我应该阅读什么吗?恐怕 CGPostKeyboardEvent
发布系统范围快捷方式的能力是弃用的原因。任何输入将不胜感激!
最佳答案
我通过 stackoverflow Japan 得到了答案 http://goo.gl/nACVPz并确认以下代码有效!
#import <Foundation/Foundation.h>
#import <Carbon/Carbon.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStateHIDSystemState);
CGEventRef f4 = CGEventCreateKeyboardEvent(source, kVK_F4, true);
CGEventSetFlags(f4, kCGEventFlagMaskControl);
CGEventTapLocation location = kCGHIDEventTap;
CGEventPost(location, f4);
CFRelease(f4);
CFRelease(source);
}
return 0;
}
关于objective-c - 如何使 CGEventCreateKeyboardEvent 和 CGEventPost 组合等效于 CGPostKeyboardEvent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27259118/
我使用 CGEventCreateKeyboardEvent 在 Mac 上创建事件并使用 CGEventPost 发布事件。以下代码非常适合按“a”键。 CGEventRef downEvent =
我在处理自定义键盘事件时遇到了困难。我希望能够发送带有/不带 kCGEventFlagMasks 的任何键,例如 command、alt、ctrl、shift... 例如我想发送当前最前面的应用程序,
我需要向聚焦的应用程序发送一个按键,我的第一次搜索使我找到了 CGEventCreateKeyboardEvent : CGEventRef eventA = CGEventCreateKeyboar
我已经安装了 pyobjc(带有 Quartz),我想知道如何使用 CGEventCreateKeyboardEvent 正确创建键盘事件?请?我在互联网上根本找不到它,而且我什至不知道要导入什么。
我正在尝试使用 CGEventCreateKeyboardEvent 和 CGEventPost 为系统范围的键盘快捷键(如 control-F4)发送击键,但没有成功。使用 CGPostKeyboa
我是一名优秀的程序员,十分优秀!