首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过NSAppleScript发送击键时出错1002

通过NSAppleScript发送击键时出错1002
EN

Stack Overflow用户
提问于 2020-10-30 19:30:18
回答 1查看 189关注 0票数 0

我想发送击键到OBS以触发场景更改。我已经通过AppleScript编写了一种方法来实现这一点:

代码语言:javascript
复制
+ (void)sendKeyWithControlDown:(NSString*)key afterMSDelay:(NSInteger)delay toOBSType:(OBSType)obsType completion:(void(^)(NSDictionary *error))completion {
    
    NSString *appName = (obsType == OBSTypeOBS) ? @"OBS" : @"RPAN Studio";
    NSString *source = [NSString stringWithFormat:@"tell application \"%@\" to activate \n tell application \"System Events\" to keystroke \"%@\" using control down", appName, key];
    
    NSAppleScript *applescript = [[NSAppleScript alloc] initWithSource:source];
    NSDictionary *dict;
    [applescript executeAndReturnError:&dict];
    
    completion(dict);
}

字典返回一个错误1002,即System Events got an error: <my app> is not allowed to send keystrokes

我尝试了以下几点:

  • 禁用应用程序沙箱(这个软件只供我使用)
  • com.apple.security.temporary-exception.apple-eventsApple Events添加到应享权利文件中,每个文件都有一个真值
  • Privacy - AppleEvents Sending Usage Description添加到应用程序的info.plist中,并提供了描述。这个应用程序在我第一次运行新的构建时要求我允许这样做,我同意,这个应用程序在System Preferences > Security & Privacy中显示在AccessibilityAutomation部分。在这两个地方都有标记。我尝试过取消标记、re-ticking
  • Cleaning和re-building
  • Deleting派生的数据

它已经成功了几次,但还不足以解释其停止的原因。在工作和停止工作之间,我没有做任何代码更改。

EN

回答 1

Stack Overflow用户

发布于 2020-10-30 20:57:37

它似乎取消和重新勾选系统首选项中的权限,而我忘了您实际上可以将它们从列表中删除。我认为它存储了另一个版本的权限,并且对我允许的应用程序感到困惑。在移除它并重新添加它之后,它起了作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64614663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档