クリップボードを操作する

require "win32/clipboard"
include Win32

str = Clipboard.data	# クリップボードからデータを取得
str.upcase!
Clipboard.set_data( str)	# クリップボードに転送
p str


# クリップボードのデータを消去
Clipboard.empty

win32/clipboardはhttp://rubyforge.org/projects/win32utilsで入手可能.
gemsって何?フォルダの中を覗いていたら,ここにもclipboard.rbが入っている.もしかしてわざわざ入れなくてもよかったのか…


クリップボードの中身を加工して,またクリップボードに書き戻す.

def untabify(str)
  tab_size = 2
  a = str.split(/(\t)/)
  a.inject(s='') {|x,y|
    x << ((y=="\t")? " "*(tab_size-x.size%tab_size): y)
  }
end

require "win32/clipboard"
include Win32
a = Clipboard.data.split("\n").map {|x| untabify(x)}
Clipboard.set_data( a.join("\n") )