2007年12月24日

午前4時まで起きて何してるんだか

意味もなくGUIに手を出してみて気付いたら午前4時、更新は午後4時


;test.ahk
;2007/12/24作成
;起動時に同じフォルダにあるlist.txtからファイル名、フルパスを読み込んで登録
;D&Dで新規登録(ListBox1+list.txtに追加)
;list.txtに登録する内容はフルパス|ファイル名

;ListBox1作成
Gui, Add, ListBox, xm ym W500 gListBox1 vListBoxValue Sort,
Gui, Show
;list.txt読み込み
Loop, Read, %A_ScriptDir%\list.txt
{
StringSplit, array, A_LoopReadLine, "|"
GuiControl, , ListBoxValue, %array1%
}
return

;サブルーチン

;D&Dされたとき
GuiDropFiles:
;MsgBox, %A_GuiEvent%
;ファイルに書き込み
FileAppend, %A_GuiEvent%`n, %A_ScriptDir%\list.txt
;リストに登録
GuiControl, , ListBoxValue, %A_GuiEvent%
return

;ListBox1が選択された時
ListBox1:
;ファイルパス取得
GuiControlGet, exe, , ListBoxValue
;起動
Run, %exe%
return

GuiClose:
ExitApp


;test2.ahk
;2007/12/24作成
;起動時に同じフォルダにあるlist.txtからファイル名、フルパスを読み込んで登録
;D&Dで新規登録((ListView1+list.txtに追加)
;list.txtに登録する内容はフルパス|ファイル名

;ListView1作成
Gui,Add,ListView, gLV R10 w400, 名前|フルパス
Gui, Show
;list.txt読み込み
Loop, Read, %A_ScriptDir%\list.txt
{
StringSplit, array, A_LoopReadLine, "|"
;Msgbox, %array0%, %array1%, %array2%
Lv_Add("",array2, array1)
}
return

;サブルーチン

;D&Dされたとき
GuiDropFiles:
;MsgBox, %A_GuiEvent%
;フルパスから名前抽出
SplitPath, A_GuiEvent, FileName
;ファイルに書き込み
FileAppend, %A_GuiEvent%|%FileName%`n, %A_ScriptDir%\list.txt
;リストに登録
Lv_Add("",FileName, A_GuiEvent)
return

LV:
;フルパス取得
LV_GetText(fullpath, A_EventInfo, 2)
;msgbox, %A_EventInfo%, %fullpath%
;起動
Run, %fullpath%
return

GuiClose:
ExitApp


基本的にほぼ同じ動作
D&Dでフルパスゲットして登録
2回クリックすると起動
次回起動時もlist.txtから読み込み

何がしたいかは分からないけどあくまでもGUIテストのためだから気にしない
重複とか幅とか高さ指定も気にしない


「ソースコードを示す - TAG index」
こんなタグがあったので使ってみた


今まで「xyzzy」「ahk-mode」で改行押すとエラー出てたのは昔のバージョン使ってたからという事に気付いた
バージョンアップしたらこれほど使いやすい物はない