首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Xamarin中使用NSAppleEventsUsageDescription获取登录项

在Xamarin中使用NSAppleEventsUsageDescription获取登录项
EN

Stack Overflow用户
提问于 2019-05-16 10:26:17
回答 1查看 1.1K关注 0票数 0

我需要从我的代码中运行AppleScript以获得LoginItems名称。我可以通过Xcode项目来完成它。但是当我对Xamarin做同样的事情时,它就失败了。

我在Xamarin项目中少了什么?任何帮助,以获得登录项目,将不胜感激。

Xcode项目代码:

代码语言:javascript
运行
复制
NSString *script = @"tell application \"System Events\" to get the path of every login item";

NSAppleScript *appleScript = [[NSAppleScript alloc] initWithSource:script];

NSDictionary* errorDict;

NSAppleEventDescriptor *descriptor = [appleScript executeAndReturnError: &errorDict];

Xcode项目plist值:

最后一个值:

我在Xamarin做了类似的事情:

代码语言:javascript
运行
复制
var script = "tell application \"System Events\" to get the path of every login item";
var appleScript = new NSAppleScript(script);
var descriptor = appleScript.ExecuteAndReturnError(out var errorInfo);

The info.plist

我得到的errorInfo值是:

代码语言:javascript
运行
复制
{{
    NSAppleScriptErrorAppName = "System Events";
    NSAppleScriptErrorBriefMessage = "Not authorized to send Apple events to System Events.";
    NSAppleScriptErrorMessage = "Not authorized to send Apple events to System Events.";
    NSAppleScriptErrorNumber = "-1743";
    NSAppleScriptErrorRange = "NSRange: {44, 4}";
}}

但是不应该发生这种情况,因为我在plist中添加了Privacy部分。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-16 11:11:36

获取错误消息/号码,并具有正确的Info.plist条目:

代码语言:javascript
运行
复制
<key>NSAppleEventsUsageDescription</key>
<string>StackOverflow needs access to your System Events </string>

注意事项:您应该通过编辑编辑器和vs IDE对Info.plist文件进行二次检查,以确保正确定义了NSAppleEventsUsageDescription键,如上面所示。

意味着您是而不是,获取安全弹出以授予权限。

这意味着用户在最初请求时拒绝了权限访问。

打开:

代码语言:javascript
运行
复制
System Preferences / Security & Privacy / Privacy Tab / Automation

找到您的应用程序列表并手动授予它权限:

注意:我一直通过macOS使用AppleScript来实现Xamarin.Mac自动化,所以我知道Xamarin不是问题所在。如果原来它不是自动化权限被拒绝,我想知道这个问题,因为这是我见过的唯一一个问题(我所有的代码,5+年,检查这个错误,并指示用户手动纠正问题,因为他们第一次被要求拒绝访问)。

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

https://stackoverflow.com/questions/56166380

复制
相关文章

相似问题

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