プログラミング工房 > Ruby > Tips >

クリップボードを利用する

 (2006/12/14更新)

 (Windows XP上のMSWin32版Ruby 1.8.5(ja)で動作確認)

 Windows版Rubyでクリップボードを利用する方法としては、Daniel Berger氏によって公開されている「Win32Utils」ライブラリ内の「win32-clipboard」パッケージがあります。


win32-clipboardの入手

(1)
 RubyForgeのWin32Utilsプロジェクトのページを開くと、プロジェクト概要のすぐ下にパッケージごとの最新リリースファイルのリストがあるので、その中のwin32-clipboardの行にある「ダウンロード」リンクをクリック。

(2)
 表示されたページで背景がピンク色に強調されたダウンロードリンクの行を探し(win32-clipboardの所のはず)、「win32-clipboard-x.x.x.zip」(x.x.xはバージョン番号)をダウンロード。
 (RubyGem版については知識がないので、このページでは説明しません)

(3)
 さらに同じページの最後にリストされている「windows-pr」パッケージもwin32-clipboardの動作に必要なため最新版zipファイルをダウンロード。


win32-clipboardのインストール

(1)
 ダウンロードした2つのzipファイルを解凍。

(2)
 「win32-clipboard-x.x.x\lib\win32」にある「clipboard.rb」をRubyインストールフォルダ以下の「lib\ruby\1.8\win32」フォルダにコピー。

(3)
 「windows-pr-x.x.x\lib」にある「windows」フォルダをRubyインストールフォルダ以下の「lib\ruby\1.8」フォルダにコピー。

 以上でとりあえずwin32-clipboardが使えるようになっているはずです。「win32-clipboard-x.x.x」フォルダにあるREADMEファイルをエディタで開き、Synopsisの項目のサンプルスクリプトをrbファイルに保存するなどして実行してみて下さい。

 (2006/12/14追記)

 インストール先のフォルダは、「lib\ruby\1.8」の代わりに、組み込み(?)変数の「$:」にデフォルトで含まれている「lib\ruby\site_ruby」や「lib\ruby\site_ruby\1.8」にしても大丈夫なようです。外部ライブラリをどこにインストールするのが普通なのか、私はよく知りません(^^;)


win32-clipboardリファレンス (詳しくは添付のREADMEを参照)


クラスメソッド

Clipboard.data(format=nil)
Clipboard.get_data(format=nil)

 現在クリップボードにあるデータを返す。formatが指定されている場合、その形式でデータを取得しようと試みる。デフォルト形式はClipboard::TEXT。サポートされている形式については定数の項目を参照。

Clipboard.empty

 クリップボードの内容をクリアする。

Clipboard.format_available?(format_number)

 現在のクリップボードデータがformat_numberに該当する形式で取得できるかどうかを返す。

Clipboard.format_name(format_number)

 format_numberに対応する形式名を返す。存在しない場合はnilを返す。

Clipboard.formats

 現在のクリップボードデータが対応している形式について、形式番号をキーとし、形式名を値とするハッシュのリストを返す。

Clipboard.num_formats

 現在のクリップボードデータが対応している形式の数を返す。

Clipboard.register_format(format)

 format(文字列)をクリップボード形式として登録する。

Clipboard.set_data(data, format=nil)

 指定されたdataをクリップボードにセットする。オプションとして形式を指定することもできる。デフォルトはClipboard::TEXT。


エラークラス

ClipboardError

 通常、クリップボードのオープンに失敗したときか、無効な形式を登録しようとしたとき発生する。


定数

(一般)

VERSION

 使用しているパッケージのバージョンを文字列で返す。

(クリップボード形式)

Clipboard::OEMTEXT

 OEM文字セットを含むテキスト形式。改行コードはCRLF。ヌル文字でデータの終端を表す。

Clipboard::TEXT

 テキスト形式。改行コードはCRLF。ヌル文字でデータの終端を表す。この形式はANSIテキストに対して使用する。

Clipboard::UNICODETEXT

 ユニコードテキスト形式。改行コードはCRLF。ヌル文字でデータの終端を表す。この形式はWindows NT/2000/XPでのみサポートされる。