Xamarin.MacでAppleScriptを実行する
2015年7月2日 (木) 05:24時点における221.188.74.218 (トーク)による版 (ページの作成:「Xamarin.Macで作られたアプリの中からAppleScriptを呼び出したいことも多いだろう。 AppleScriptはMacにおいては他社製...」)
Xamarin.Macで作られたアプリの中からAppleScriptを呼び出したいことも多いだろう。 AppleScriptはMacにおいては他社製のアプリを起動したり制御したりする手軽なインターフェイスとして重宝する。
実装1:NSAppleScriptクラスを使う
Foundation名前空間にNSAppleScriptクラスという直球なものが存在する。 使い方はいたって簡単で、コンストラクタの引数にAppleScriptを渡して、ExecuteAndReturnErrorメソッドを呼ぶだけである。
この例ではiTunesを起動し再生ボタンが押された状態にする。
using System;
using AppKit;
using Foundation;
namespace PlayiTunes
{
static class MainClass
{
static void Main(string[] args)
{
// Cocoa初期化(NS〜系クラスを使うためのおまじない)
NSApplication.Init();
// iTunesを起動し再生するAppleScript
// 使い終わったら必ずDispose()すること。
using (var script = new NSAppleScript("tell application \"iTunes\" to play"))
{
// スクリプトを実行する
var errors = new NSDictionary();
var result = script.ExecuteAndReturnError(out errors);
if (result != null)
{//たぶん正常終了
// 戻り値はNSAppleEventDescriptor
Console.WriteLine(result.Description);
}
else
{//たぶん異常終了
}
}//dispose script
}
}
}
関連項目
- MonoMac/AppleScriptを実行する
- MonoMacにはNSAppleScriptクラスが存在しないため別の手段を使う必要がある。