差分
ナビゲーションに移動
検索に移動
[[Xamarin.Mac]]で作られた[[アプリ]]の中から[[AppleScript]]を呼び出したいことも多いだろう。
[[AppleScript]]は[[Mac]]においては他社製のアプリを起動したり制御したりする手軽な[[インターフェイス]]として重宝する。
==実装1:NSAppleScriptクラスを使う==
Foundation名前空間にNSAppleScriptクラスという直球なものが存在する。
使い方はいたって簡単で、コンストラクタの引数にAppleScriptを渡して、ExecuteAndReturnErrorメソッドを呼ぶだけである。
この例では[[iTunes]]を起動し再生ボタンが押された状態にする。
<source lang="csharp">
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
}
}
}
</source>
==関連項目==
*[[MonoMac/AppleScriptを実行する]]
*:[[MonoMac]]にはNSAppleScriptクラスが存在しないため別の手段を使う必要がある。
==参考文献==
{{reflist}}
{{stub}}
[[category:Xamarin.Mac]]
[[AppleScript]]は[[Mac]]においては他社製のアプリを起動したり制御したりする手軽な[[インターフェイス]]として重宝する。
==実装1:NSAppleScriptクラスを使う==
Foundation名前空間にNSAppleScriptクラスという直球なものが存在する。
使い方はいたって簡単で、コンストラクタの引数にAppleScriptを渡して、ExecuteAndReturnErrorメソッドを呼ぶだけである。
この例では[[iTunes]]を起動し再生ボタンが押された状態にする。
<source lang="csharp">
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
}
}
}
</source>
==関連項目==
*[[MonoMac/AppleScriptを実行する]]
*:[[MonoMac]]にはNSAppleScriptクラスが存在しないため別の手段を使う必要がある。
==参考文献==
{{reflist}}
{{stub}}
[[category:Xamarin.Mac]]