Windows Live Photo Galleryから好きな画像ビューアで画像を開く

Windows Live Photo Galleryから好きな画像ビューアで画像を開く

ただ開くだけならCtrl+C送ってRunでいいんだけど、それだと面白くないから、axpathlist2.spiを利用してパスリストを生成したり、色々やってみた。

WLPGから選択画像のパスリストを生成し、任意の画像ビューアで開く

WLPGのタグや検索で絞り込んで、気に入ったのを選択してからそれを外部ビューアで開こうというスクリプト

まず準備として、以下のサイトからaxpathlist2.spiをダウンロードし、Susieプラグイン対応の画像ビューアを用意。

で、AHKの方のスクリプトは以下の通り。

#IfWinActive ahk_class WLX_Photo_Library_MainWnd
^Enter::
  ClipSave := Clipboard
  Send, ^c
  ClipWait, 1
  FileAppend, %Clipboard%`r`n, %A_ScriptDir%\ListFile.sz7, CP932
  RunWait, ..\MassiGra\MassiGra.exe %A_ScriptDir%\ListFile.sz7
  FileDelete, %A_ScriptDir%\ListFile.sz7
  Clipboard := ClipSave
  ClipSave  := 
Return
#IfWinActive

パスリスト(sz7ファイル)はAutoHotkeyと同じフォルダに生成されて、ビューアが閉じられたときに自動で削除される。

WLPGで選択している画像をパスリストとして保存する

上のと同様にパスリストを生成するけど、ビューアで表示はせずに、パスリストの保存だけするスクリプト

とりあえず上ので表示してみて、気に入ったらこっちで保存する感じ。ビューアを閉じる時に保存するかどうか選ぶってのもできるけど、ちょっと見たいだけの時にまでいちいちダイアログが出るのはうざいからやめた。

#IfWinActive ahk_class WLX_Photo_Library_MainWnd
^+Enter::
  ClipSave := Clipboard
  Send, ^c
  ClipWait, 1
  FileSelectFile, ListFile, S16, %A_Desktop%, 保存場所を選択してください。, *.sz7
  IfNotInString, ListFile, .sz7
    ListFile := ListFile . ".sz7"
  If (ListFile != "")
    FileAppend, %Clipboard%`r`n, %ListFile%, CP932
  Clipboard := ClipSave
  ClipSave  := 
Return
#IfWinActive

個人的にはあんまり使わないけど、五つ星の画像だけ集めたパスリストを作るとか、用途はあると思う。

選択画像のあるフォルダを開く

おまけで、画像じゃなく画像のあるフォルダをファイラで開くスクリプト

#IfWinActive ahk_class WLX_Photo_Library_MainWnd
+Enter::
  ClipSave := Clipboard
  Send, ^c
  ClipWait, 1
  SplitPath, Clipboard, Name, Dir, Ext, NoExt, Drive
  Run, ..\XF\XF.exe %Dir%
  Clipboard := ClipSave
  ClipSave  := 
Return
#IfWinActive

ここではXFで開くようになってるけど、ファイラを指定しなければ関連付けしてあるファイラで開く。

全部まとめたもの

上の3つはファイル名コピーのあたりで重複部分が多いので、まとめてみた。

処理速度的にはどうかわからないけど、どうせ体感できるほどの速度差は出ないだろうから、編集しやすい(と思う)。

#IfWinActive ahk_class WLX_Photo_Library_MainWnd
^Enter::
^+Enter::
+Enter::
  ClipSave := Clipboard
  Send, ^c
  ClipWait, 1
  If (A_ThisHotkey = "^Enter")
  {
    FileAppend, %Clipboard%`r`n, %A_ScriptDir%\ListFile.sz7, CP932
    RunWait, ..\MassiGra\MassiGra.exe %A_ScriptDir%\ListFile.sz7
    FileDelete, %A_ScriptDir%\ListFile.sz7
  }
  Else If (A_ThisHotkey = "^+Enter")
  {
    FileSelectFile, ListFile, S16, %A_Desktop%, 保存場所を選択してください。, *.sz7
    IfNotInString, ListFile, .sz7
      ListFile := ListFile . ".sz7"
    If (ListFile != "")
      FileAppend, %Clipboard%`r`n, %ListFile%, CP932
  }
  Else If (A_ThisHotkey = "+Enter")
  {
    SplitPath, Clipboard, , Dir
    Run, ..\XF\XF.exe %Dir%
  }
  Clipboard := ClipSave
  ClipSave  := 
Return
#IfWinActive