gpt4 book ai didi

objective-c - 模拟组合击键不起作用?

转载 作者:行者123 更新时间:2023-11-30 15:44:53 25 4
gpt4 key购买 nike

我想在finder中模拟“cmd + k”按键,以便它可以打开“连接到服务器窗口”。但它不起作用。我是 Objective-C 的新手,所以任何人都可以帮助我。我尝试了下面的代码,但不知道为什么它不起作用。

CGEventSourceRef src = 
CGEventSourceCreate(kCGEventSourceStateHIDSystemState);

CGEventRef cmdd = CGEventCreateKeyboardEvent(src, 0x37, true);
CGEventRef cmdu = CGEventCreateKeyboardEvent(src, 0x37, false);
CGEventRef k_d = CGEventCreateKeyboardEvent(src, 0x4F, true);
CGEventRef k_u = CGEventCreateKeyboardEvent(src, 0x4F, false);

CGEventSetFlags(k_d, kCGEventFlagMaskCommand);
CGEventSetFlags(k_u, kCGEventFlagMaskCommand);

CGEventTapLocation loc = kCGHIDEventTap; // kCGSessionEventTap also works
CGEventPost(loc, cmdd);
CGEventPost(loc, k_d);
CGEventPost(loc, k_u);
CGEventPost(loc, cmdu);

CFRelease(cmdd);
CFRelease(cmdu);
CFRelease(k_d);
CFRelease(k_u);
CFRelease(src);

提前致谢...

最佳答案

首先我编写了小苹果脚本,然后在 cocoa 内部调用相同的脚本,请尝试以下操作:-

NSBundle *def=[NSBundle mainBundle];
NSString *path=[def pathForResource:@"openServer" ofType:@"scpt"];
NSAppleScript *appleScript=[[NSAppleScript alloc]initWithContentsOfURL:[NSURL fileURLWithPath:path] error:nil];
[appleScript executeAndReturnError:nil];

下面是名为 openServer.scpt 的 applescript 文件

tell application "Finder"
activate
tell application "System Events"
keystroke "k" using command down
end tell
end tell

关于objective-c - 模拟组合击键不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19287511/

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