KeynoteをGUI Scripting経由で操作したときに、Stream Deck制御ソフトウェアに「Keynote」プラグインが入った状態だと、異常が発生する件の続報です。
Stream Deckソフトウェアに「Keynote」操作プラグインをインストールすると、GUI Scriptingからの本物のKeynote.appにメニュー操作を要求しても「そんなものはない」と言われてしまうというのが、この問題の概要です。
elgatoに問い合わせ、Appleにバグレポートし、elgatoからは一向に返事も何も返ってこない(elgatoから返事をもらったことがない)のですが、Appleの担当者とやりとりしてこの奇怪現象の発生メカニズムが見えてきました。
Stream DeckのKeynote操作プラグインをインストールした状況でアクティビティモニタを調べると…
なんと、不可視のStream Deckプラグインのプロセスの名称が「Keynote」という名前になっていたのが原因だったようです。そこ、「Keynote_control」とか少しはひねった名前にしようよ、、、、>elgato
どれだけ複雑で悪辣な仕組みになっているのかと思っていたら、これだけ。
Appleの担当者から提案された対策コードはこんな感じで、実際に自分で動作確認しつつ、少しだけ手直ししてみました。これで、Stream DeckのKeynote操作用プラグインの不可視プロセスが「Keynote」なんて名前で実行されていても問題ありません。いやはや。
AppleScript名:Keynoteの各メニュータイトルをGUI Scriptingで取得する.scpt |
tell application "System Events" set tProcList to every process whose name is "Keynote" and its background only is false if tProcList = {} then return tell (first process whose name is "Keynote" and background only is false) –ここ、変数に代入するとダメ!! tell menu bar 1 set mList to title of every menu bar item –> {"Apple", "Keynote", "ファイル", "編集", "挿入", "スライド", "フォーマット", "配置", "表示", "再生", "共有", "ウインドウ", "ヘルプ"} end tell end tell end tell |
More from my site
(Visited 116 times, 1 visits today)