HOME  >  スポンサー広告 >  Ruby >  Windows 上の Ruby でクリップボードを活用する方法 その2

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--/--/-- | カテゴリ:スポンサー広告 | トラックバック(-) | コメント(-)

Windows 上の Ruby でクリップボードを活用する方法 その2

この記事は、その 2 ですが、その 1 を見る必要はありません。
gem(win32-clipboard) がバージョンアップして、その 1 は無意味になりましたので。(せつない)

クリップボードを利用するために、win32-clipboard という gem を利用します。
gem install win32-clipboard
日本語を使うには、ちょっとだけ癖があります。
クリップボードに UNICODE として入れてあげる必要があります。
そうすると Ctrl + V のペーストでも日本語が文字化けしません。
require 'win32/clipboard'

str = "ほげほげふーばー"
Win32::Clipboard.set_data(str, Win32::Clipboard::UNICODETEXT) # <- UNICODE でクリップボードにセット
puts Win32::Clipboard.data(Win32::Clipboard::UNICODETEXT) # <- 取得時も UNICODE を指定する
2014/1/28 追記
下記は、Win32-clipboard 0.6.2 にて修正されています。
# というか修正して pull request してみました。
簡単に日本語も使えるようになりましたが、 僕の環境だと、プリントスクリーンした画像情報を読みこもうとしたらエラーになりました。
C:/ruby/lib/ruby/gems/2.0.0/gems/win32-clipboard-0.6.0/lib/win32/clipboard.rb:374:in `get_image_data': undefined local variable or method `compression' for Win32::Clipboard:Class (NameError)
        from C:/ruby/lib/ruby/gems/2.0.0/gems/win32-clipboard-0.6.0/lib/win32/clipboard.rb:117:in `data'
        from C:/Applications/ruby/clipboard/printscreen.rb:23:in `write'
if bmi[:bmiHeader][:biCompression] == 0
  table_size = bmi[:bmiHeader][:biClrUsed]
elsif compression == 3
  table_size = 3
else
  raise "invalid bit/compression combination"
end
なにやら compression なる変数が定義されてないよーということで、
以下のように修正したら動きました。
elsif bmi[:bmiHeader][:biCompression] == 3
# でも、まだビットマップ周りの処理はあやしい気がする……
2014/01/19 | カテゴリ:Ruby | トラックバック(0) | コメント(0)
コメントの投稿












管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL
http://uisteven.blog.fc2.com/tb.php/45-769371cd

外部リンク

カンパのお願い
公開しているソフトウェアはフリーウェアなので無料でご利用いただけます。 気に入ってくださった方は、Amazon でお買い物をする際に下記のリンクを経由して頂ければ励みになります。

検索BOX・タグ一覧
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。