AutoHotkey スレッド part17

このエントリーをはてなブックマークに追加
938名無しさん@お腹いっぱい。
ちょっと場所お借りします。

http://anago.2ch.net/test/read.cgi/software/1393584975/757 へのレス。

AutoHotkeyに関することは詳しく説明しないので悪しからず。
例ではOperaブラウザ上でのみ適用される(適用したいウインドウクラスは自分で調べてくれ)。
例として、文字列選択後に [shift]+[ctrl]+c で動作。
スクリプトと同じ場所の「ウインドウタイトル名のフォルダ」に「ウインドウタイトル名 + 年月日.log」へ追記する。
フォルダもlogファイルも存在しなければ自動で作成する。
ウインドウタイトル名の中にファイル名に使えない文字が含んでいたら「_」に変換する。
一度に大量の文字列をコピーしようとする(スレ全体とか)と失敗すると思う。

長いので次のレスへ
939名無しさん@お腹いっぱい。:2014/04/14(月) 06:08:38.33 ID:Jz/r1Yxa0
>>938より続き

#Persistent
;#If WinActive("ahk_class OperaWindowClass") || WinActive("ahk_class ウインドウクラス") ;複数指定する場合
#IfWinActive, ahk_class OperaWindowClass
$^+c::
ClipSaved := ClipboardAll ;クリップボードのバックアップが不要なら削除
Send, ^c
ClipWait, 2
WinGetTitle, wintitle, A
wintitle := RegExReplace(wintitle, "\\|/|:|;|,|\*|\?|\""|<|>|\|", "_")
Filename := A_ScriptDir . "\" . wintitle . "\" . wintitle . A_Year . A_Mon . A_MDay . ".log"
if (! FileExist(A_ScriptDir . "\" . wintitle . "\")) {
FileCreateDir, %A_ScriptDir%\%wintitle%
}
file := FileOpen(Filename, "a")
file.WriteLine("----- 以下に追加 -----") ;不要なら削除
file.WriteLine(Clipboard)
file.Close
Clipboard := ClipSaved ;クリップボードのバックアップが不要なら削除
ClipSaved = ;クリップボードのバックアップが不要なら削除
return
#If

これを拡張子「ahk」で保存。