「Xamarin.MacでAppleScriptを実行する」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
(ページの作成:「Xamarin.Macで作られたアプリの中からAppleScriptを呼び出したいことも多いだろう。 AppleScriptMacにおいては他社製...」)
 
imported>Administrator
48行目: 48行目:
  
 
==関連項目==
 
==関連項目==
*[[MonoMac/AppleScriptを実行する]]
+
* [[MonoMac/AppleScriptを実行する]]
*:[[MonoMac]]にはNSAppleScriptクラスが存在しないため別の手段を使う必要がある。
+
*: [[MonoMac]]にはNSAppleScriptクラスが存在しないため別の手段を使う必要がある。
 +
* [[Xamarin.Mac/NSTextViewでスマートクォートを無効化する]]
  
 
==参考文献==
 
==参考文献==

2016年3月30日 (水) 06:35時点における版

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

関連項目

参考文献