ファイルのパスをコピーするツールを作ってみました。
エクスプローラを立ち上げてアドレスバーからファイルのパスをコピーするのって面倒ですよね。ということで、ドラッグ & ドロップしたファイルのパスをクリップボードにコピーするプログラムを書いてみました。以前Haskellでも似たようなプログラムを書きました(id:ha-tan:20061215:1166193344)。微妙にUIが違いますが、目的は同じです。
ダウンロードはこちらです。
以下、ソースです。win32-clipboardに依存していますので、このソースを使う人は事前にgem等でwin32-clipboardをインストールしておいてください(バイナリを使う人は不要です)。
ファイル: pthcp.rb
#!/usr/bin/env ruby require 'pathname' require 'win32/clipboard' require 'win32ole' USAGE = <<END 使い方 ====== このプログラムのアイコンにファイルをドラッグ & ドロップしてください。 ファイルのパスをクリップボードにコピーします。 ライセンス ========== このプログラムのライセンスはLGPLです。 なお、このプログラムはRubyおよびExerbを使用しています。 それぞれ以下のURLからソースコードをダウンロードできます。 - Ruby <http://www.ruby-lang.org/> - Exerb <http://exerb.sourceforge.jp/> END sh = WIN32OLE.new('WScript.Shell') if ARGV.empty? sh.popup(USAGE, -1, 'pthcp') exit 1 end str = ARGV.map {|a| "<#{Pathname(a).realpath.to_s.gsub(/\//, '\\')}>\n" }.join Win32::Clipboard.set_data str sh.popup("以下のパスをコピーしました。\n\n" + str, -1, 'pthcp')
ファイル: pthcp.exy
general: startup: pthcp.rb core: gui kcode: sjis file: pthcp.rb: pathname.rb: file: C:/Program Files/ruby-1.8/lib/ruby/1.8/pathname.rb Win32API.so: file: C:/Program Files/ruby-1.8/lib/ruby/1.8/i386-mswin32/Win32API.so type: extension-library windows/clipboard.rb: file: C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/windows-pr-0.6.5/lib/windows/clipboard.rb windows/memory.rb: file: C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/windows-pr-0.6.5/lib/windows/memory.rb windows/unicode.rb: file: C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/windows-pr-0.6.5/lib/windows/unicode.rb windows/error.rb: file: C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/windows-pr-0.6.5/lib/windows/error.rb win32/clipboard.rb: file: C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/win32-clipboard-0.4.2/lib/win32/clipboard.rb win32ole.so: file: C:/Program Files/ruby-1.8/lib/ruby/1.8/i386-mswin32/win32ole.so type: extension-library
ファイル: build.bat
call exerb pthcp.exy upx pthcp.exe
参照: るびま