(AHK)(AutoHotkey)(以前作った ahkに対する ラッパーexeを もう一度作り直してみた)
以前 ahkによる ファイルラウンチツールについて書きましたが
http://d.hatena.ne.jp/morakana/20080330/1206897117 < その時の記事はこちら
その時の ラッパーexe部分を もう一度改善して(したつもり 笑)みました
基本的な概念は 以前の記事と一緒なので割愛します
ということで ソースはこちら < はしょりすぎだろ 笑)
http://d.hatena.ne.jp/morakana/20080330/1206897117 < その時の記事はこちら
その時の ラッパーexe部分を もう一度改善して(したつもり 笑)みました
基本的な概念は 以前の記事と一緒なので割愛します
ということで ソースはこちら < はしょりすぎだろ 笑)
; コマンドライン引数がある分 ループして ; ahkスクリプトに渡す コマンドライン文字列を生成する cmd := "" Loop { If ( %A_Index% == "" ) Break cmd .= " " . """" . %A_Index% . """" } ScriptFileName := A_ScriptDir . "\" . E2F(A_ScriptName) . ".ahk" RunEx(ScriptFileName, cmd) ExitApp FN2FL(FileName, BufferSize = 1000) { VarSetCapacity(Buf, BufferSize, 0x00) DllCall("kernel32.dll\GetLongPathNameA", "Str", FileName, "Str", Buf, "UInt", BufferSize) DllCall("kernel32.dll\GetFullPathNameA", "Str", Buf, "UInt", BufferSize, "Str", Buf, "UInt", 0) Return Buf } E2F(Expression, BufferSize = 1000) { VarSetCapacity(Buf, BufferSize, 0x00) DllCall("kernel32.dll\lstrcpyA", "Str", Buf, "Int", DllCall("shlwapi.dll\PathFindFileNameA", "Str", Expression) ) DllCall("shlwapi.dll\PathRemoveExtensionA", "Str", Buf) Return Buf } E2D(Expression, BufferSize = 1000) { VarSetCapacity(Buf, BufferSize, 0x00) Buf := Expression DllCall("shlwapi.dll\PathRemoveFileSpecA", "Str", Buf) Return Buf } RunEx(ExecuteFileName, Parameter, WorkDirectory = "", SW_xxxx = 1) { If ( (ExecuteFileName := FN2FL(ExecuteFileName)) == "" ) Return 0 If ( WorkDirectory == "" ) WorkDirectory := E2D(ExecuteFileName) . "\" Return DllCall("shell32.dll\ShellExecuteA", "UInt", 0 , "Str", "open" , "Str", ExecuteFileName , "Str", Parameter , "Str", WorkDirectory , "UInt", SW_xxxx) }exe化した物を同梱したのは ツール置き場 からどうぞ