challenge クリップボードへの転送

クリップボード(や同等の機能)へテキストを転送するプログラムをお願いします。 また可能でしたらクリップボードのデータを取り出すプログラムもお願いします。

システムに依存する内容ですが、応用範囲が広いと思いましたので出題させてもらいました。

Posted feedbacks - Ruby

標準入力或いは、指定のファイルからクリップボードに転送します。 '-show' をつけるとクリップボードのテキストを表示

1
2
3
4
5
6
7
8
require 'win32/clipboard'
include Win32

if ARGV.include?('-show')
  print Clipboard.get_data
else
  Clipboard.set_data(ARGF.read)
end

Mac OS Xには pbcopy, pbpasteの名前でシェルからクリップポードを操作するコマンドが存在します。(デフォルトではpbcopy,pbpasteは日本語の場合Shift-JISしか扱えないそうです)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#!/usr/bin/env ruby -wKU

if (ARGV.length != 1)
  print "Usage: handle_pb [-show] text\n"
end

if ARGV[0] == '-show'
  
  print %x{ pbpaste | nkf -w }
else
  ENV['PB_COPY_TEXT'] = ARGV[0]
  
  # デフォルトではpbcopyは日本語の場合Shift-JISしか扱えない
  %x{ echo $PB_COPY_TEXT | nkf -s | pbcopy } 
end

Index

Feed

Other

Link

Pathtraq

loading...