ScanSnap Organizer で検索可能なPDFを生成しやすくするために、AutoHotkey_L用スクリプトを作成した。特定のフォルダを選択中にキーを一回入力すれば(初期設定ではF12キー)、変換処理を自動的に開始して、変換処理が終了次第、終了を通知したウィンドウを自動的に閉じ、そして変換処理の結果をツールチップに数秒間表示する(初期設定では3秒)。ツールチップの表示例を以下に掲載しておこう。
このスクリプトを用いれば、ScanSnap Organizer のウィンドウが最前面にない場合でも、変換処理が終了したと通知するウィンドウを自動的に閉じることができる。どういうことか簡単に説明しておこう。検索可能なPDFを生成し終えたときにはScanSnap Organizerは通知ウィンドウを最前面に表示する。このように通知ウィンドウが万が一表示されないときでも、スクリプトによって、通知ウィンドウを適切に判別してから閉じるのである。
ソースは以下のとおりである。なお、このスクリプトはScanSnap Organizer V4.1L41で正常に動作している。他のバージョンでの動作状況は不明だ。
F10:: ;; このスクリプトを終了させる ExitApp return F11:: ;; scansnap organizer のウィンドウの存在を調べる GoSub, check_window_of_scansnap_organizer ;; 終了処理の検知と自動クリックを実行する GoTo, show_tooltip_and_close_window return ;; フォルダ内のpdfをすべて検索可能なpdfへと変換する ;; pdfがある任意のフォルダをクリックした直後に実行すること ;; 選択中のフォルダの階層よりも下のフォルダにあるPDFは処理しない F12:: ;; scansnap organizer のウィンドウの存在を調べる GoSub, check_window_of_scansnap_organizer ;; 既存の設定通りに、検索可能なpdfへとすべてのpdfを変換する GoSub, create_searchable_pdf ;; 終了処理の検知と自動クリックを実行する GoTo, show_tooltip_and_close_window return check_window_of_scansnap_organizer: try { if not (WinExist("ScanSnap Organizer - ")) throw "ScanSnap Organizer のウィンドウが見つかりません" } catch e { MsgBox, %e% Exit } return create_searchable_pdf: send,{tab} send,{right}^a send,{Appskey} loop,5 { send,{down} sleep,50 } send,{enter} sleep,100 send,{enter} return show_tooltip_and_close_window: ;; 処理が終了した旨の通知を受け取ったら ;; 通知ウィンドウを自動的に閉じて、 ;; tooltip にその情報を表示する loop { sleep,1000 WHdl := WinExist("ScanSnap Organizer - 検索可能なPDFに変換") result_text := get_result(WHdl) if (result_text) { ControlSend,, {enter}, ahk_id %WHdl% tooltip,% result_text SetTimer, RemoveToolTip, 3000 } } until (result_text) return RemoveToolTip: SetTimer, RemoveToolTip, Off ToolTip return get_result(WHdl) { if (WHdl) { WinGetText, result_text, ahk_id %WHdl%, 変換処理が終了しました。 result_text := RegExReplace(result_text,"s)^.+。", "PDFの変換処理が終了!`n") result_text := RegExReplace(result_text,"キー", "`n$0") result_text := RegExReplace(result_text,"[`n`r]+(:)[`n`r]+", "`t$1 ") return result_text } return false }