Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c MonoMac-如何执行apple脚本_Objective C_Mono_Applescript_Monomac_Monobjc - Fatal编程技术网

Objective c MonoMac-如何执行apple脚本

Objective c MonoMac-如何执行apple脚本,objective-c,mono,applescript,monomac,monobjc,Objective C,Mono,Applescript,Monomac,Monobjc,我正在尝试用MonoMac创建一个简单的应用程序,需要执行apple脚本来访问不同媒体播放器的播放列表信息(请参阅我的) 我决定尝试一下MonoMac,因为我非常熟悉C#和.net开发,并且有一个很好的Websocket实现 不幸的是,NSAppleScript似乎没有可用的包装器。我试了又试了 Frederics wrapper类在我使用其代码时甚至没有编译,我得到以下异常: Unhandled Exception: System.IO.FileNotFoundException: Could

我正在尝试用MonoMac创建一个简单的应用程序,需要执行apple脚本来访问不同媒体播放器的播放列表信息(请参阅我的)

我决定尝试一下MonoMac,因为我非常熟悉C#和.net开发,并且有一个很好的Websocket实现

不幸的是,NSAppleScript似乎没有可用的包装器。我试了又试了

Frederics wrapper类在我使用其代码时甚至没有编译,我得到以下异常:

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'MonoMac, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. File name: 'MonoMac, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
有人能推荐一种在mono环境中执行apple脚本的简单而有效的方法吗?

如果不使用Monobjc运行时二进制文件运行Monobjc程序集,则无法直接使用Monobjc程序集。无论您是想构建基于Cocoa的应用程序还是控制台应用程序,都可以在Monobjc的网站上为您提供帮助

实现应用程序间通信的最简单方法是使用ScriptingBridge框架。许多应用程序提供了脚本定义,然后可以以面向对象的方式使用这些定义:有关详细信息,请参阅

请注意,脚本桥仅适用于支持脚本的应用程序(如iTunes、iCal、iMovie、Finder等)


Monobjc支持ScriptingBridge框架;甚至有两个示例应用程序(和)演示了如何集成它。

如果可能,请尝试使用Monobjc。Monobjc提供了一种非常简单的执行自定义AppleScript的方法

以下代码段显示了主要步骤:

string script = ". . . . . . . . . ."; // some applescript text
NSDictionary error = null;
NSAppleScript scr = new NSAppleScript(script);
NSAppleEventDescriptor result = scr.ExecuteAndReturnError(out error);
string retval = result.StringValue;

我已经写了一篇文章来解释这一点。这里还提供了一个示例Monobjc项目。

我试图从WinForms Mono项目执行AppleScript,最终构建了自己的小AppleScript执行库,名为AppleScript Slim!00%的代码来自Mono开发项目


AppleScript Slim:

如何检查应用程序是否启用了脚本?检查Apple脚本编辑器中的功能浏览器?有两种方法:(1)在Apple脚本编辑器中,选择文件>打开字典;应列出应用程序,或(2)在终端提示符中键入“sdef/Applications/.app”;如果出现错误,则应用程序无法编写脚本。这将非常好,我将在获得一些空闲时间后立即尝试此操作:)
string script = ". . . . . . . . . ."; // some applescript text
NSDictionary error = null;
NSAppleScript scr = new NSAppleScript(script);
NSAppleEventDescriptor result = scr.ExecuteAndReturnError(out error);
string retval = result.StringValue;