Objective c 模拟组合击键不起作用?
我想在finder中模拟“cmd+k”keystrke,这样它就可以打开“连接到服务器窗口”。但它不起作用。我对目标C不熟悉,所以有人能帮我吗。我尝试了下面的代码,但不知道为什么它不工作Objective c 模拟组合击键不起作用?,objective-c,c,xcode,macos,cocoa,Objective C,C,Xcode,Macos,Cocoa,我想在finder中模拟“cmd+k”keystrke,这样它就可以打开“连接到服务器窗口”。但它不起作用。我对目标C不熟悉,所以有人能帮我吗。我尝试了下面的代码,但不知道为什么它不工作 CGEventSourceRef src = CGEventSourceCreate(kCGEventSourceStateHIDSystemState); CGEventRef cmdd = CGEventCreateKeyboardEvent(src, 0x37, true); CGEventRef 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