macOS 10.15のリリースノートで書かれていたリモートAppleEventsの動作検証を行ったら、うまく動作しませんでした(!) 結局のところは、マシン名が途中で変更してあったことが原因でした。アドレス指定が正しくなかったためにマシン指定できなかった(ケアレスミス)だけだったので、これについてはOSのバグではありません。
リモートマシンへのリモートAppleEventの送信には、ネットワーク上の他のマシンを「eppc://」で指し示す必要があります。指定するマシン名はIPアドレスないしRendezvousBonjour名が使用できます。さらにここで、UID番号を指定できるのはつい最近知りました。
Classic MacOSでは、ネットワーク上の他のマシンのアプリケーションに直接命令を投げることができていましたが、Mac OS Xの途中のバージョンからアプリケーションに直接イベントを投げられなくなりました(すでに記憶があいまい)。
現在、eppcでリモートイベントを投げられるのはAppleScriptアプレットに対してのみです。それでも、ネットワークの他のマシン上のプログラムと連携する機能は重要です。
ことに、リモートAppleEventは異なるバージョンのOS間でもやりとりできるので、古いOSでしか動作しないソフトウェアを別マシンで動かしておいて、最新バージョンのOS上のAppleScriptからリモートで機能を呼び出すといった運用が可能ですし、Parallelsなどの仮想環境で動いているmacOSのマシンに対してもリモートAppleEventでやりとりできます。
AppleScript名:eppc |
set myUserName to "myuser" set myPassword to "mypass" set myUID to "myuid" set targMachineName to "YasMBP.local" –Bonjour名 set machineName to "eppc://" & myUserName & ":" & myPassword & "@" & targMachineName & "/?uid=" & myUID using terms from application "testApplet" tell application "testApplet" of machine machineName set aRes to testMe("ABCDEFG") end tell end using terms from return aRes –> "GFEDCBA" |
More from my site
(Visited 322 times, 1 visits today)