0

EPPC 経由で表示ダイアログをリモート マシンに送信するにはどうすればよいですか? リリース ノートの Scripting Addition Security でこの問題について説明されていると思いますが、まだ解決できていません。リリースノート

試行 1

using terms from application "Finder"
    set remoteFinder to application "Finder" of machine "eppc://user:password@host"
    tell remoteFinder to display dialog "Hi!" buttons {"A", "B"}
end using terms from

ここに画像の説明を入力

試行 2 アプリケーション「dispD.app」はリモート マシンに保存され、yourMessage パラメータを受け入れる必要があります。

on run {yourMessage}
    display dialog yourMessage buttons {"A", "B"}
end run

ローカル コンピューターから次のスクリプトを実行します。

using terms from application "Finder"
    set remoteFinder to application "Finder" of machine "eppc://user:password@host"
    tell remoteFinder to run script file "path:to:my:dispD.app" with parameters {"Hi!"}
end using terms from

ここに画像の説明を入力

4

1 に答える 1

1

あなたがやりたいことを直接行うのは不可能かもしれないと思いますが、これに関するドキュメントを見つけるのは非常に難しいため、100%確実ではありません. MacScripter (このようなもの) と Apple フォーラムのさまざまなスレッドは、EPPC を介して OSAXen (「スクリプトの追加」) と通信する際のさまざまな問題を示しています。(スレッドはすべて赤いニシンに分岐するため、少し混乱しますが、関連する情報を持っているスレッドもあると思います。) また、「ダイアログの表示」コマンドは Finder (またはシステムイベント) の一部ではなく、標準追加 OSAX。

OSAX の追加機能は自動的に取り込まれるため、これを AppleScript 内からテストするのは実際には困難です。しかし、appscript から、次のように手動で OSAX をアプリケーションにアタッチできます。

sa = osax.ScriptingAddition('StandardAdditions', name='Finder')
sa.display_dialog('hi')

予想通り、これは機能します。これにより、「不明なプロパティ、要素、またはコマンド」が得られます。

f = app(name='Finder')
f.display_dialog('hi')

さて、実際の Finder コマンドを実行すると、次のようになります。

f.windows()

すべてが機能します。そして、それをリモートにしたい場合:

rf = app(url='eppc://test:test@localhost/Finder')
rf.windows()

問題ない。でも今:

sa = osax.ScriptingAddition('StandardAdditions', url='eppc://test:test@localhost/Finder')
sa.display_dialog('hi')

これは 10.5 では機能しますが、10.6、10.7、または 10.8 では機能しません。(まあ、私がアクセスできる 8 台のマシンのうち、10.5 を実行しているマシンでは動作しますが、10.6 以降を実行している 7 台のマシンでは動作しません)。

だから、これはあなたの問題だと思います。

解決策については、これを回避するいくつかのハックな方法を考えることができます。

  • リモート スクリプトを使用する代わりに、ssh + ローカル osascript を使用します。
  • cocoadialog 、 pashua などを使用し、 を使用する代わりに でそれらを駆動do shell scriptますdisplay dialog。(これには、ローカル マシンではなく、リモート ターゲット マシンにそれぞれのツールが必要です。)
  • StandardAdditions に依存する代わりに、ダイアログをネイティブに表示できるアプリをリモート スクリプト化します。(ストックアプリのいずれかがこれを行う方法を持っているかどうかはわかりません。そのため、リモートマシンに何かをインストールする必要がある場合があります。その場合は、cocoadialog を使用することもできます。)
于 2012-07-17T02:01:06.243 に答える