gpt4 book ai didi

macos - 当我的应用程序不是前端应用程序时,如何将键盘事件发送到我的应用程序?

转载 作者:行者123 更新时间:2023-12-03 17:04:37 26 4
gpt4 key购买 nike

我希望我的应用程序在发生某个键盘事件时收到通知(例如在 0.5 秒内按下左 Alt 键两次)。该应用程序不应是前端应用程序。我该如何做到这一点?

最佳答案

您需要安装一个事件点击来更改修改键。

这应该可以帮助您开始:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
CFMachPortRef eventTap;
CGEventMask eventMask;
CFRunLoopSourceRef runLoopSource;

eventMask = CGEventMaskBit(kCGEventFlagsChanged);

eventTap = CGEventTapCreate(kCGSessionEventTap, kCGHeadInsertEventTap, 0,
eventMask, KeyHandler, NULL);
if (!eventTap) {
NSLog(@"failed to create event tap");
exit(1);
}

runLoopSource = CFMachPortCreateRunLoopSource(kCFAllocatorDefault, eventTap, 0);
CFRunLoopAddSource(CFRunLoopGetCurrent(), runLoopSource, kCFRunLoopCommonModes);
CGEventTapEnable(eventTap, true);
}

static CGEventFlags previousFlags = 0;

CGEventRef KeyHandler(CGEventTapProxy proxy, CGEventType type, CGEventRef event, void *refcon)
{
if (type == kCGEventFlagsChanged) {
CGEventFlags curAltkey = CGEventGetFlags(event)&kCGEventFlagMaskAlternate;
if (curAltkey != previousFlags)
NSLog(@"alt key changed");
}

return event;
}

关于macos - 当我的应用程序不是前端应用程序时,如何将键盘事件发送到我的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13454292/

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