【AutoHotkey】 ユーザ固有のパラメータを設定ファイルに保存する。
先日ユーザー固有のパラメータを環境変数に保存するやり方を紹介しました。
その記事を投稿した後「ちなみに本来取り組むべき設定ファイルへの保存はどうやるのかな」と思い立ち、きっと誰かが実装しているだろう Google 検索してみました。
ドンピシャで見つかりまして、しかも結構しっかり作ってあります。
なるほど ini ファイルで保存するのか。
IniWrite, Value, Filename, Section[, Key]
古い Windows の時代には ini ファイル、拡張子 ini がつくファイルに設定を保存していました。
当時はそれが常識だったので、設定ファイルの読み出しを言語が備わっていることが多かったです。
Auto HOT key もそのうちの一つだったということですね。
ini ファイルをどこに配置すれば良いのかと言いますと,ワーキングディレクトリA_WorkingDirのようです。
それはどこなんだと調べました。
どうやら実行スクリプトが配置されているディレクトリで良さそうです。
つまり、スクリプトのあるディレクトリにファイル名+. ini を作成しておけば設定ファイルとして利用されます。
小さな画面を用意するのも比較的簡単で、スクリプトのメニューから起動すれば短いコードで設定保存画面を実装できるようです。
Gui, Add, Text,, First name: Gui, Add, Text,, Last name: Gui, Add, Edit, vFirstName ym ; The ym option starts a new column of controls. Gui, Add, Edit, vLastName Gui, Add, Button, Default, OK ; The label ButtonOK (if it exists) will be run when the button is pressed. Gui, Show,, Simple Input Example Return ; End of auto-execute section. The script is idle until the user does something. GuiClose: ButtonOK: Gui, Submit ; Save the input from the user to each control's associated variable. MsgBox You entered "%FirstName% %LastName%".
ここで作成した画面をトレイアイコンのメニュー(Auto HOT key の常駐アイコンを右クリックで開くポップアップ。)から呼び出せるように項目を追加するのですね。
Menu, tray, add, Item1, MenuHandler Return MenuHandler: MsgBox You selected %A_ThisMenuItem% from menu %A_ThisMenu% Return
これからは環境変数ではなく、こいつを丸パク…参考にさせてもらうことにします。
もちろんパスワードを保存する場合には ini ファイルが他のユーザーから見えないように保存場所に気をつけて。