SmartActivate
指定したアプリケーションプロセスの最前面のウィンドウだけを前面に持ってきて、フロントプロセスに切り替えるスクリプティング機能追加です。
通常、アプリケーションプロセスをアクティブにすると、アプリケーションすべてのウィンドウは前面にでてきます。例えば、AppleScript から操作対象のウィンドウを表示させるために、 activate イベント等を使うと、そのプロセスのすべてのウィンドウが前面に出て来てしまいます。しかし多くの場合、対象としているウィンドウは1枚だけですから、よけいなウィンドウが前面に出て来て画面を覆い尽くしてしまうのは避けたい物です。SmartActivate はそんな問題を解決します。
Memory (2020-01-24)
OS X 10.10 から AppleScriptObjC が Xcode とかライブラリの中だけとかという制限がなくなり、どこでも使えるようになりました。すると、Cocoa の NSRunningApplication を使えば、SmartActivate と同じことができるようになりました。
そこで、NSRunningApplication をラップして SmartActivate のように使いやすくしたライブラリ XActivate を開発しました。
決定的には、macOS 10.14 から System Integrity Protection(SIP)によって、サードパーティ製のスクリプティング機能追加がブロックされるようなりました。SIP の無効化をすれば使えないことはないけど、代替も用意できたし、そこまで頑張る必要はないでしょう。
更新履歴
- 1.1.4 -- 2016-02-06
- ガベージコレクションのサポートを追加した。
- 1.1.3 -- 2012-04-19
- SmartActivate version コマンドを追加。
- 1.1.2 -- 2010-12-17
- Mac OS X 10.4 で動作するようにした。
- activate コマンドを独立したパッケージにした。
- 1.1.1 -- 2010-08-27
- 内部の変更。
- PackageMaker でインストーラーを作った。
- 1.1/1.0.7 -- 2009-10-16
- Mac OS X 10.6 をフルサポート
- Mac OS X 10.6 と Mac OS X 10.5 用は別々のバンドルになります。
- 引数が与えられない場合、current application を activate するようにした。
- アプリケーションのtell ブロックでターゲットアプリケーションを activate するようにした。
- Mac OS X 10.6 をフルサポート
- 1.0.6 -- 2009-10-13
- 64 bit をサポート。
- Mac OS X 10.4 のサポートを外しました。
- 1.0.5 -- 2008-10-30
- Intel Mac で動作しない不具合を修正。
- 1.0.4 -- 2007.04.09
- コマンドラインツール activate の プロセス名の引数のエンコーディングをロケールで設定されているエンコーディングと仮定するようにした(Hiro さん、ありがとうございました)。
- でも、プロセス名を指定すると言語環境が違った時に動作しなくなるので推奨しません。
- コマンドラインツール activate の プロセス名の引数のエンコーディングをロケールで設定されているエンコーディングと仮定するようにした(Hiro さん、ありがとうございました)。
- 1.0.3 -- 2007.03.21
- スクリプティング機能追加 version が Cocoa にリンクしないようにした。
- 1.0.2 -- 2007.03.07
- スクリプティング機能追加 version が Cocoa に依存しないようにした。
- 1.0.1 -- 2006.01.14
- Universal Binary 化
- man page を追加(ソースに含まれています)。
- 1.0 -- 2005.10.30
- 初公開