gpt4 book ai didi

objective-c - 如何使 CGEventCreateKeyboardEvent 和 CGEventPost 组合等效于 CGPostKeyboardEvent?

转载 作者:搜寻专家 更新时间:2023-10-30 19:41:05 27 4
gpt4 key购买 nike

我正在尝试使用 CGEventCreateKeyboardEventCGEventPost 为系统范围的键盘快捷键(如 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com