Windowsのフォルダを監視して,ファイルが追加されたら、通知したい.
.NetFramework つかえば簡単にできるんだけど.IronPythonとか使えば一瞬で出来るんだけどね.Rubyのgems でがんばってみて
Windowsのフォルダ監視
WinShotがどんどんキャプチャしてくれるんだけど,ファイル名をいちいちメモするのがめんどくさい.Gyazoを入れるほどでもないので,画面キャプチャしてファイル名を返してくれるWin32APIが欲しいと思ったけど,そんなモノ無いので、適当に作る.
ruby でフォルダ監視
'C:\Users\takuya\Pictures\capture'を監視する。
ファイルが追加されたら、ファイル名をクリップボードにコピーする.
require 'rubygems' require 'win32/changenotify' require 'win32/clipboard' $KCODE="s" include Win32 class Clipboard def Clipboard.data=(bin) self.set_data bin end end filter = ChangeNotify::FILE_NAME | ChangeNotify::DIR_NAME path = 'C:\Users\takuya\Pictures\capture' cn = ChangeNotify.new(path, true, filter) cn.wait{ |arr| arr.each{ |info| Clipboard.data= "file:"+ info.file_name if info.action == "added" } }
起動方法
rubyw.exe watch_folder.rb
ruby.exeでなく rubyw.exe を使う。コンソール画面が残ると邪魔なので.rubyw.exeを使ってプロセスをバックグラウンドで動かす方が便利だし.
2011-12-26追記
サービス登録すると便利だと思う.
Cygwinを使えばスクリプトを簡単にサービス登録できるので,これを活用することにする.
CygwinでWindowsサービスを作る。簡単だった。 - ブックマクロ開発に