Menu

Skip to content
AppleScriptの穴
  • Home
  • Products
  • Docs
  • Events
  • Forum
  • About This Blog
  • License
  • 仕事依頼

AppleScriptの穴

Useful & Practical AppleScript archive. Click '★Click Here to Open This Script' Link to download each AppleScript

iPhoneから自宅/会社のMac上のAppleScriptを呼び出すEntangler

Posted on 10月 29, 2018 by Takaaki Naganoya

iOSデバイスからMacのAppleScriptを呼び出そう

# 本記事は、2015/9/20に投稿した内容を再掲載したものです(一部修正)

以前、Otto’s Antennaという名前で紹介したアプリケーションがバージョンアップして、「Entangler」という名前になっていました。

これは、iOSデバイスからMac上のAppleScriptをMac上で実行させて、結果をiOSデバイス側で取得/確認するためのアプリケーションです(ハリウッド映画だと、リモート自爆スイッチとかに使いそう)。

主な用途は、仕事場で時間のかかる処理を行うAppleScript(膨大なデータを処理してPDF出力してサーバーにアップロードするとか、とにかく時間のかかる内容)を帰宅後に実行するなど、「職場の資源を使わないと実行できないプログラムを外出先から実行する」ためのトリガーに使うといったところです。

営業から「こういう資料を至急ほしい」と言われて、職場のマシンのファイルを送ればいいだけの処理のために職場に戻りたく…ないですよね。わざわざ帰社したくないとか、時間のかかる処理を夜間に行わせて結果だけ返してほしいとか、Macをそういう使い方をするためのツールとして使うようなケースに役立ちます。

また、大きな会場でKeynoteによるプレゼンを行いつつ、iPhoneでスライドをめくる(Mac上のKeynote書類をすすめるAppleScriptを実行する)とか。あるいは、プリンタに入れておける最大枚数を超えるような超大量のプリントアウトを行いたいんだけど、プリンターの場所まで行かないと他部署からのプリントアウト状況とか用紙補給状況がわからず、プリンターの前から自席のMacのプリントアウトを開始させる必要があるケースとか。

iOS/watchOS側に呼び出しアプリケーションをインストールし、同じApple IDでペアリングされているMac側に実行用のアプリケーションをインストールします。

離れた場所のFAXの前まで行って、自宅のMacからFAX送信させよう

ちょうど、奥方様の実家のFAXの動作確認をする必要があったので、MacにFAXモデムをつないで、指定の電話番号にFAX出力するAppleScriptを書いて、iPhone上のEntanglerから呼び出してみました。

# macOSのFAX出力機能(eFAX)はmacOS 10.13で廃止になりました(執筆時はmacOS 10.10.5でテスト)。LAN上のmacOS 10.12以下のマシンにFAXモデムをつないで運用することになります

EntanglerというアプリケーションのMac版をMacにインストールし、iOS版をiPhoneにインストールして、iOS側からMac側の機能を呼び出すというのが、基本的な運用スタイルです(Apple Watch版もあるとは知りませんでした)。

前バージョンであるOtto’s Antennaよりもデザインがよくなって、iOSデバイスから操作してからの反応が速くなっていました。EntanglerはAppleScriptのほかにもAutomatorアクションやshell scriptなども実行できるそうです(AppleScriptしかテストする気がないですけれども)。

Scriptを実行するMacはSleepせずに、ネットワーク(LAN/WiFi)に接続した状態にしておく必要があります(要注意)。


▲MacBook ProにUSRoboticsのUSB FAX Modem(OS X 10.10.5でも使える)をつなぎ、Sleepしないようにしてスタンバイ


▲Mac上のEntanglerにFAX送信するAppleScriptを登録

実行するAppleScriptは、~/Library/Application Scripts/com.amolloy.ottosantenna/ に入れておく必要があります。実行可能なAppleScriptは、通常形式、バンドル形式、テキスト形式です。

Mac上のEntanglerはMac App Store上で配布されているアプリケーションであるため、当然のことながらSandbox化されています。このため、このEntanglerで呼び出すAppleScriptは「Sandbox内で動く」ことを考慮してある必要があります(OSのバージョンによって制限のきつさ/ゆるさは変わってきますが、アクセス可能なファイル/フォルダが大幅に制限され、OS側から取得できる情報が制限されます)。

AppleScript名:ダイアログてすと
on run anArg
  display dialog (anArg as string)
end run

★Click Here to Open This Script 

▲iOSデバイス側からの実行時にMac側に受け渡されるパラメータを確認


▲iPhone上のEntanglerを起動して、「print_a_fax」Scriptを実行


▲FAX受信中(「ps-ax」と通知が出ている)


▲確認のためにFAXで印刷したYahoo!のトップページ。印刷が途切れているのは、本来A4用紙が必要なところに無理やり別のサイズ(たぶんB5)の紙を突っ込んだため

Otto’s Antenna→Entanglerのアップデートで解消された不具合

前バージョンである「Otto’s Antenna」ではいくつか問題があったわけですが、それがバージョン2.0(2018/10/29再掲載時 バージョン2.3)であるEntanglerではどうなっているでしょうか?

(1)日本語のファイル名のScriptを登録するとおかしくなるバグ

Otto’s Antennaでは、日本語のファイル名のAppleScriptを登録すると、「こんにちは」と「こんにちは~」の2つのファイルが登録されたように見え、「こんにちは~」のほうは実行できないゴーストでした。

実際に日本語のファイル名のAppleScriptを登録してみたところ、この前バージョンで発生していたバグは再発しませんでした。

(2)AppleScriptに引数を渡せない

Otto’s Antennaでは、Shell ScriptなどにArgumentsを渡せるのに、AppleScriptにはArgumentsを渡せない仕様になっていました。

Entanglerで実験してみたところ、iOSデバイス上のEntanglerでScriptボタンを長押しすると、Argumentsの入力ダイアログが表示されます。ダイアログにArgumentsを入力すると、たしかにAppleScript側でArgumentsを受信できました。

AppleScript名:ダイアログてすと
on run anArg
  display dialog (anArg as string)
end run

★Click Here to Open This Script 

今回のFAX送信実験でいえば、送信先のFAX番号を引数に渡せるようにすることも可能です。

(3)Scriptが実行されるまでの時間が長い

Otto’s AntennaのときにはKeynoteのスライドをめくるような用途にはちょっと使えないぐらい応答に時間がかかっていました。iPhone上で操作してからMac上でAppleScriptが実行されるまで、だいたい10秒ぐらいかかっていました。

Entanglerでは、ずいぶん早くなりました。1〜2秒といったところでしょうか。Keynoteのスライドめくりには依然としてちょっと物足りないかもしれませんが、応答速度の向上は歓迎できます。

Otto’s Antennaのときにダメだと感じた点が、ずいぶん改善されています。まだEntanglerのすべての機能を試せていませんが、現時点でも満足できています。

Siriショートカットより65535倍役立つ

iOS 12上の「ショートカット」(Siriショートカット)アプリでも、LAN内でIPアドレス固定で指定できれば、「SSH経由でスクリプトを実行」ショートカットからLAN内のMac上の指定アカウントの指定AppleScriptを実行することができます。

ただし、「ショートカット」アプリはあくまでLAN内という制限がつくため、インターネットごしに(iCloudごしに)AppleScriptを実行できるEntanglerの方がはるかに自由がきいて強力です。

More from my site

  • 指定写真をQRコード認識してエンコードされたデータをデコード指定写真をQRコード認識してエンコードされたデータをデコード
  • リスト中の指定アイテムを削除する(登場アイテム番号自動検索)リスト中の指定アイテムを削除する(登場アイテム番号自動検索)
  • Finder上で選択中の画像を横方向に連結 v4Finder上で選択中の画像を横方向に連結 v4
  • Bayes推定による文章仕分け(Classifier)Bayes推定による文章仕分け(Classifier)
  • ABSを求めるABSを求める
  • treeVar(ツリー状のデータ構造をNSBrowserで表示するためのルーチン)treeVar(ツリー状のデータ構造をNSBrowserで表示するためのルーチン)
Posted in Internet Remote Control | Tagged iOS | 1 Comment

1 thoughts on “<span>iPhoneから自宅/会社のMac上のAppleScriptを呼び出すEntangler</span>”

  1. 12/24/18
    7:02 PM
    2018年12月24日
    7:02 PM

    Reply

    ぴよまるソフトウェアが選ぶ、2018年に書いた「価値あるScript」 – AppleScriptの穴 says:

    […] 「iOSのSiriショートカットでiOSからosascriptコマンドを経由してMac上のAppleScriptを呼び出せる」といった話まで広がったのは収穫でした(結局、Entanglerのほうが6億倍ぐらい便利なのでSiriシ […]

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

電子書籍(PDF)をオンラインストアで販売中!

Google Search

Popular Posts

  • Keynoteの最前面のドキュメントの現在のスライドに指定月の日曜日はじまりカレンダーを表で作成
  • ディスプレイの設定切り替えをAppleScriptでも行えるSwitchResX
  • Numbersで選択範囲のセルのデータを取得して重複データを抽出
  • 文字列のURLエンコード、URLデコード
  • 指定フォルダに指定アイコン画像をつける v3
  • リストから選択してアイテム番号を返す
  • AppleScript上でJavaScriptを実行する
  • Numbersで選択中の表のセルの範囲を背景色で頻度集計
  • 配列の指定要素を検索する(テキスト)
  • Xcode 12.2betaでIntel/ARM Universal Binaryのビルドを確認
  • NSProcessInfoでプロセスの各種情報を取得
  • 画面上の指定座標にマウスカーソルを強制移動させてクリック
  • SafariでURLをローディング
  • CotEditorで編集中のMarkdown書類をPDFプレビュー
  • AppleScript disassembler
  • 【基礎】AppleScriptの実行を(操作により)中断する
  • QuickTime Playerでオープン中の全ムービーを頭出しして同時再生
  • Safariで表示中のWebページの最終更新日時を取得
  • 各種GUI要素なしでSafari上に新規ウィンドウ表示
  • AppleScriptでキースキャン

Tags

10.11savvy (1109) 10.12savvy (1249) 10.13savvy (1384) 10.14savvy (504) 10.15savvy (295) 11.0savvy (103) CotEditor (47) Finder (43) iTunes (25) Keynote (58) NSAlert (59) NSAlertSecondButtonReturn (16) NSArray (50) NSBitmapImageRep (20) NSBundle (19) NSButton (33) NSColor (48) NSDictionary (26) NSFileManager (23) NSFont (18) NSImage (40) NSJSONSerialization (20) NSMutableArray (61) NSMutableDictionary (21) NSPredicate (36) NSRunningApplication (55) NSScreen (30) NSScrollView (22) NSString (113) NSURL (93) NSURLRequest (22) NSUTF8StringEncoding (29) NSUUID (18) NSView (33) NSWindow (17) NSWorkspace (19) Numbers (42) Pages (16) Safari (34) System Events (16) WKUserContentController (20) WKUserScript (19) WKUserScriptInjectionTimeAtDocumentEnd (17) WKWebView (21) WKWebViewConfiguration (21)

カテゴリー

  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • Bluetooth
  • boolean
  • Bug
  • Calendar
  • call by reference
  • Clipboard
  • Code Sign
  • Color
  • Custom Class
  • dialog
  • drive
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • History
  • How To
  • Icon
  • Image
  • Input Method
  • Internet
  • JavaScript
  • JXA
  • Keychain
  • Language
  • list
  • Locale
  • Machine Learning
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Noification
  • Notarization
  • Number
  • OCR
  • OSA
  • PDF
  • Peripheral
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • sdef
  • search
  • Security
  • shell script
  • Sort
  • Sound
  • Spellchecker
  • Spotlight
  • SVG
  • System
  • Tag
  • Telephony
  • Text
  • Text to Speech
  • timezone
  • Tools
  • Update
  • URL
  • UTI
  • Web Contents Control
  • WiFi
  • XML
  • XML-RPC
  • イベント(Event)
  • 未分類

アーカイブ

  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月

https://piyomarusoft.booth.pm/items/301502

メタ情報

  • 登録
  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
Proudly powered by WordPress
Theme: Flint by Star Verte LLC