AutoHotKeyで、.sz7を生成してみたり+α。

 axpathlist2.spiとat_picture、それとLeeyesを利用して、.sz7で方々のファイルを上手いことまとめる手法を補助するAHKスクリプト群。

axpathlist2.spi形式の.sz7を生成するAHKスクリプト

 コマンドラインオプションでファイルパス(書庫内書庫対応)を指定すると、ファイルの存在するフォルダor実在書庫と同じ名前の.sz7ファイルを生成する。既に存在した場合は追記。複数パスを一度に渡すとソートしてから登録する。起動してからウィンドウにファイルをドロップしても登録できるが、DnDで書庫内パスを渡すアプリはないだろうなぁ。

;/////////////////////////////////////////////////////////////////////////////////////
;
; Add sz7
;
;/////////////////////////////////////////////////////////////////////////////////////

  Heading1 := "Drop && Run"
  Heading2 := "Running..."
  ErrMsg := ""

  if (1 > %0%) {
    Gui, Add, Text, vHeading, %Heading1%
    Gui, Add, Edit, vErrMsg Multi ReadOnly, %ErrMsg%
    Gui, +AlwaysOnTop
    Gui, +Resize
    Gui, +MinSize
    Gui, Show, W200 H113,
  } else {
    gosub, main
    ExitApp
  }
return

GuiDropFiles:
  StringReplace, FileList, A_GuiEvent, `r`n, `n, 1
  0 := A_EventInfo  ; ドロップされたファイル数を代入
  Loop, Parse, FileList, `n, \
    %A_Index% := A_LoopField

main:
  GuiControl, Text, Heading, %Heading2%
  PathList := ""
  Loop, %0%
  {
    Cmdline := %A_Index%
    loop, %Cmdline%
      Cmdline := A_LoopFileLongPath  ; ロングパス化
    PathList .= Cmdline "`n"
  }
  StringTrimRight, PathList, PathList, 1

  Sort, PathList, CL

  Loop, Parse, PathList, `n
  {
    ArchivePath := GetArchivePath(A_LoopField)
    if ErrorLevel
      SplitPath, ArchivePath, , ArchivePath
    SplitPath, ArchivePath, , ArchiveDir, , Sz7Name
    FileAppend, %A_LoopField%`n, %ArchiveDir%\%Sz7Name%.sz7
  }

  MaxNum = %0%
  SplashView(Sz7Name ".sz7 へ " MaxNum " 個のアイテムを登録しました。")

  if ErrCnt {  ; Errがあったら
  }
  GuiControl, Text, Heading, %Heading1%
return

;/////////////////////////////////////////////////////////////////////////////////////

GetArchivePath(TrgPath = "") {
  ErrorLevel := 0
  if ("" != FileExist(TrgPath))
    ErrorLevel := 1
  loop {
    if ("" != FileExist(TrgPath))
      break
    idx := InStr(TrgPath, ".", 0, 0)
    if !idx
      return
    idx := InStr(TrgPath, "\", 0, %idx%)
    if idx
      StringMid, TrgPath, TrgPath, 1, idx - 1
  }
  return, TrgPath
}

;/////////////////////////////////////////////////////////////////////////////////////

GuiSize:
  if (1 == A_EventInfo)
    return

  EMW := A_GuiWidth - 20, EMH := A_GuiHeight -35
  GuiControl, Move, ErrMsg, W%EMW% H%EMH%
return

GuiClose:
  GUI, Destroy
  Sleep, 2000
  ExitApp

;/////////////////////////////////////////////////////////////////////////////////////

SplashView(TextBuf, Timer = 1500) {
  Progress, B1 ZH0 W600, %TextBuf%
  SetTimer, SplashClose, %Timer%
}

SplashClose:
  SetTimer, SplashClose, Off
  Progress, Off
return

 テキスト表示欄使ってないのは自作テンプレートそのまま使いまわした将来的な拡張余地!

AtPicture2での.sz7の保存を少し便利に。

 .sz7はAtPictureの「ファイルから画像をリストアップ」で開けばグラフィカルに編集できるが、保存がちょっと面倒なので、簡略化するAHKスクリプト。
 F12を押すとAddSz7.ahkと同じく、画像の存在するフォルダor実在書庫と同名の.sz7を上書き保存する。

;--------------------------------------------------------------------------------------
; AtPicture2
;--------------------------------------------------------------------------------------
#IfWinActive ahk_class atpicture2

F12::
  KeyWait, Shift
  KeyWait, Ctrl
  KeyWait, Alt
  BlockInput, On
  WinGetTitle, Title, A
  RegExMatch(Title, "([a-zA-Z]:\\.*)\.[^.]+$", $)
  PostMessage, 0x111, 10102, 0, , A
  WinWait, パスリストを保存 ahk_class #32770
  Control, EditPaste, %$1%.sz7, Edit1
  Send, {Enter}
  WinWait, 名前を付けて保存の確認 ahk_class #32770, , 1
  if !ErrorLevel
    Send, y
  BlockInput, Off
return

Leeyesで.sz7を扱う。

 axpathlist.spiをLeeyesに認識させれば、.sz7を書庫として扱える。

 AddSz7.ahkは、Leeyesの外部アプリケーションに登録しておくと便利。登録は右クリックから。その際、「書庫内のファイルは書庫内のパスを含めて渡す」を有効にすること。

 AtPicture2も登録しておけば、編集したい時に便利。


[PR]
by lordnoesis | 2012-08-24 21:30 | テクノロジ | Trackback(1) | Comments(0)
トラックバックURL : http://poimono.exblog.jp/tb/18378340
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。
Tracked from 名称未定っぽい。 at 2012-11-09 20:54
タイトル : AutoHotKey_Lで、マンガミーヤCEを便利にして..
 以前書いたマンガミーヤCE向けのホイールによるタブ移動と表示している書庫/画像のパス保存≒タブセッション保存をクリンナップしつつ、パス保存で作ったパスリストの読み込み機能も実装してみた。 あと、基本的なキー設定をすべてAHKでメニューID叩いて実現してみた。Win7だとキーカスタマイズができない問題があって、いちいちVMWareでXPを起動するのが面倒だったので、もう全部AHKでいいじゃん!みたいな。キー割り当てはソースを見れ。  なお上下キーはページ移動だが、押しっぱなしにした場合の移動を、キー...... more
名前
URL
画像認証
削除用パスワード

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

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