| New MacLab. | MacLab. News Blog | English |
Clipboard Object
クリップボードの取り扱いは,AppleScriptの中でも最も難しいテーマの一つです。Clipboard Objectはこの問題を解決し,クリップボードに関する機能を容易にアップデートできるように作成されました。クリップボードの取り扱いの標準化を実現し,ユーザーの環境に依存することなくクリップボードに関するスクリプティングを可能にするルーチンを持つ共有ライブラリです。当サイトのソフトウエアでクッリプボードの中のデータを利用する場合,原則としてこの共有ライブラリをインストールする必要があります。
漢字Talk7.5 〜 MacOS 8.1
標準環境の漢字Talk7.5〜MacOS 8.1にインストールされている AppleScript 1.1.x は 直接クリップボードを 扱うようにはできていません。この問題はスクリプティング機能追加ファイル(osax)を追加することで解決できます。Clipboard Objectは以下のスクリプティング機能追加の機能を利用することができるので、いずれか一つでもインストールされていればクリップボードにフルアクセス可能です。
- Jon's Commands
- Akua Sweets
- Clipboard
- Tanaka's osax(2.0fc未満のみ)または Tanaka's Clipboard commands
これらを利用しない場合でも,スクリプティング対応エディタを利用してクリップボードのデータを処理します。この場合,32kBまでのテキストデータしか取り扱うことができません。スクリプティング対応エディタがインストールされていない場合,ダイアログ表示により手動でクリップボードを利用しますが,その場合には255バイトまでのテキストデータしか扱うことができません。
MacOS 8.5 〜 Mac OS 9.x
MacOS 8.5で搭載されてる AppleScript 1.3において,クリップボードの取り扱いがシステム標準でサポートされました。これは Jon's Commandsの一部がシステムに組み込まれる形で実現されました。当サイトにて配布中のクリップボードを扱うすべてのスクリプトは,クリップボードの処理における問題に対処するため,クリップボードに関する処理を共有ライブラリ Clipboard Objectに集中させてきました。この Clipboard Objectが Jon's Commandsに対応してあったため,当サイトにあるすべてのソフトウエアは自動的に MacOS 8.5のクリップボート機能に対応できました。
Mac OS X 10.x
Mac OS Xにおいては AppleScriptを利用して Finderのクリップボードウインドウを開くことができません。また、クリップボードの中の日本語が正しく表示されません。
現在配布中のClipboardObjectは独自のアイデアでこの問題を回避して、クリップボードの内容を正しく処理することができます。また、将来のバージョンのMac OS Xにおいてこの問題が解決された場合でも、スクリプトアプリケーションそのものの書き直しをすることなく、共有ライブラリの修正のみで対応することができます。
このソフトウエアは開発者向けの資料を含んでいます。単純にライブラリのみをインストールする場合は,ネットワークインストーラを利用することができます。このソフトウエアは共有ライブラリであり,システム全体の動作に影響を与える可能性は低いと考えられますが,このソフトウエアを使用したことによるいかなる結果についても作者は責任を負いません。
| Clipboard Objectをダウンロード |
| ネットワークインストーラ |
Clipboard Objectの応用
Clipboard Objectの基本的な役割は,データをAppleScriptに取り込むことと,AppleScriptから出力することです。ですから,Clipboard Objectと同じルーチン名を持つ別のソフトウエアを作成すれば,Clipboard Object対応ソフトウエアからそれらを直接利用することができます。
サンプルとして,Jedit2,QuoEdit,Style(いずれもAppleScript対応のテキストエディタ)などの選択範囲をクリップボードとして利用するClipboard Objectを添付しました。本来のClipboard Objectのかわりにこれらをインストールすると,
HTML Conv-JなどのClipboard Object対応ソフトウエアをJedit2の中で使用したりすることができるようになります。
開発者向けの注意
このソフトウエアを利用するスクリプトを作成する際には,ルーチン名が
Tanaka's osax 1.xの搭載するハンドラー名と重複するため,スクリプトを正常に作成できないことがあります。このような場合,
Tanaka's osaxをスクリプティング機能追加フォルダから外してMacintoshを再起動させた状態でスクリプトを記述して下さい。この問題を回避するためには,
Tanaka's osax 2.xをお使い下さい。
Tanaka's osax 2.0fc以降はクリップボード関連の機能がなくなりました。他のosaxを使用して下さい。
変更履歴
- ver.1.49
- checkClip命令の改良、CoreObjの組み込み。
- ver.1.48
- showClipルーチンの改良。文字列以外のデータの場合の処理を追加。readText/writeText命令のためのmyFolder命令およびcheckClip命令、setFTCT命令を追加。
- ver.1.47
- showClipルーチンの改良。Mach-O CarbonとCFM Carbonにそれぞれ別のスクリプトを実装。getApp(AppSign) 1.8,checkCarbon(),checkMach() 1.1,writeText() 2.7,loadObj() 3.5ルーチンを追加。
- ver.1.46
- showClipルーチンの改良。エラー追跡用のダイアログを削除。
- ver.1.45
- showClipルーチンの改良。
- ver.1.44
- Mac OS XでshowClipルーチンが動作しなかった問題を解決。Finderのクリップボードを開けなかった場合はダイアログで表示するように変更。
- ver.1.43
- MacOS 8.5以降でshowClipルーチンが動作しなかった問題を解決。
- ver.1.4
- スクリプティング対応エディタに対応。AS Runner 1.5とのコンフリクトを解消。
- ver.1.3
- Akua Sweets,Clipboardに対応。DataCompObjによるデータ出力に対応。
- ver.1.2
- Tanaka's osax 2.0bに対応。ダイアログによるテキスト入力に対応。
- ver.1.1
- テキストファイルによるデータ出力に対応。
- ver.1.0
- Jon's Commands,Tanaka's osax 1.xに対応。クリップボードの内容表示に対応。
| Index |
Copyright(C) 1995-1998 SUZUKI Kazufumi, All rights reserved.