Xamarin.MacでAppleScriptを実行する

提供: MonoBook
ナビゲーションに移動 検索に移動

Xamarin.Macで作られたアプリの中からAppleScriptを呼び出したいことも多いだろう。 AppleScriptMacにおいては他社製のアプリを起動したり制御したりする手軽なインターフェイスとして重宝する。

実装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
        }
    }
}

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]