AutoHotKey_Lで、Everythingの検索結果をX-Finderで開けるように。

 Everything Search Engineのような、NTFSのMFTに対応した検索ソフトはとても高速だが、どうしてもMFTの情報だけでは絞り込めなかったり、条件に当てはまるファイルを俯瞰したい場合などに、エクスプローラのようなサムネイルの一覧表示が欲しくなるが、そういうソフトは中々ない。というわけで、Everythingの検索結果を、X-Finderのクリップフォルダ(任意のファイル等を集約できる仮想フォルダ)として開くAHKスクリプト書いた。

;--------------------------------------------------------------------------------------
; Everything
;--------------------------------------------------------------------------------------
#IfWinActive ahk_class ahk_class EVERYTHING

F11::
  ClipWaitNull()
  Send, ^c
  ClipWait, 3
  if !ErrorLevel {
    Path2ClipFld(Clipboard)
    IfWinExist, ahk_class TXFinder.UnicodeClass
      WinActivate
    else
      Run, "C:\X-Finder\XF.exe"  ; X-Finderのパス。
  }
  ClipWaitRestore()
return

Path2ClipFld(PathList) {
  ClipFldPath := "C:\X-Finder\EverythingResult.ini"  ; パスリストの保存先。
  
  StringReplace, PathList, PathList, `n, `n, UseErrorLevel
  ClipFldBuf := "[X-Finder]`nCount=" ErrorLevel + 1
  
  Loop, Parse, PathList, `n, `r
  {
    if ("\" == SubStr(A_LoopField, 0))
      ItemPath := SubStr(A_LoopField, 1, -1)
    else
      ItemPath := A_LoopField
    SplitPath, ItemPath, ItemName
    
    Transform, ItemName, HTML, %ItemName%, 2
    
    SetFormat, Integer, H
    Loop {
      if !RegExMatch(ItemName, "&#(\d+);", $)
        break
      
      TipNum := 0 + $1
      StringReplace, ItemName, ItemName, &#%$1%;, &#%TipNum%;, All
    }
    SetFormat, Integer, D
    StringReplace, Itemname, ItemName, &#0, &#, All
    
    Loop, %ItemPath%, 1
      ItemPath := A_LoopFileShortPath
    
    ItemNum := A_Index - 1
    ClipFldBuf .= "`nName" ItemNum "=" ItemName "`nPath" ItemNum "=""" ItemPath """`nType" ItemNum "=1"
  }
  FileDelete, %ClipFldPath%
  FileAppend, %ClipFldBuf%, %ClipFldPath%, CP932
}



ClipWaitNull(SW = 1) {
  if SW {
    global CBBackup
    CBBackup := ClipboardAll
  }
  
  Clipboard :=
  while ("" != Clipboard)
    Sleep, 50
}

ClipWaitRestore() {
  global CBBackup
  
  ClipWaitNull(0)
  Clipboard := CBBackup
  ClipWait
}

 Everythingで検索結果を選択し、F11を打鍵するとX-Finder形式のiniを吐く。ウチのX-Finderはクリップフォルダを開きっぱなしの想定なので、アクティブ化or起動に留めたが、そうでないなら引数にExtra:%X-Finder%EverythingResult.iniとでも。

 それと、ツール>基本オプション>その他>クリップフォルダへのパス登録を忘れないように。大抵の場合、既にClipFolder:があるはずなので、ClipFolder:;Extra:%X-Finder%EverythingResult.iniとなる。

 INIはS-JISでユニコード文字は文字参照という仕様なのだが、文字列中のユニコード文字だけ文字参照に置き換える簡単な方法は思いつかず、文字列すべて文字参照とショートネームにしたった。どうせ手作業で編集することなんてないしね。

voidtools > Everything
タブファイラー・X-Finder


[PR]
by lordnoesis | 2014-01-02 19:58 | テクノロジ | Trackback | Comments(0)
トラックバックURL : http://poimono.exblog.jp/tb/21364402
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。
名前
URL
画像認証
削除用パスワード

※このブログはコメント承認制を適用しています。ブログの持ち主が承認するまでコメントは表示されません。

ブログトップ | ファンになる