[AutoHotKey]InputBoxで作る超シンプルタイマー

「ご飯が炊けるまでの時間でパソコン作業したい」 そんなこと、ありますよね (紳士風)。

Windows10には「アラーム & クロック」という標準アプリが搭載されていますが、起動して新しいタイマーを追加して時間設定…と少々面倒です。

今回はショートカットキー + 分指定のみという簡単操作で起動でき、しかも作業の邪魔にならない超シンプルなタイマーを、AutoHotkeyを使って作りたいと思います。

タイマーの準備

まずはタイマーのための準備をしましょう。今現在常駐しているメインのファイルを「main.ahk」とします。

タイマーのコードはそれとは別のファイルに記述していきます。新しく「simpleTimer.ahk」などの名前でファイルを作り、同じディレクトリに置きましょう。

AutoHotkeyのフォルダ
├── main.ahk
└── simpleTimer.ahk

このようなファイル構成でOK。「main.ahk」側にタイマー起動用のショートカットキーを登録しておきます。

!F13::Run, simpleTimer.ahk

Include文は不要です。これでAlt+F13を押すと、simpleTimer.ahkが起動するようになりました。なおキー設定やファイル名はお好みで設定してください。

タイマーのコードと使い方

今回のタイマーの中身はこんな感じです。simpleTimer.ahkに記述します。

InputBox, Min, 簡易タイマー, 時間を設定してください, , , , , , , , 5
Timer := Min * 60000

If(ErrorLevel == 0){
    MsgBox, , タイマー開始, %Min%分カウントします..., 2
    Sleep, %Timer%
    ToolTip, %Min%分経過しました
    Sleep, 5000
    ToolTip
    ExitApp
}else{
    ExitApp
}

処理としては指定時間スリープするだけの単純なコード。保存、リロード後に設定したキーを押すと、

時間(分)を指定するダイアログが現れます。数値を入力して「OK」を押しましょう。試しに1分のタイマーを開始します。入力ボックスに「1」と入力してOKを押すと、

開始メッセージが現れます。そのまま放置か「OK」を押すと消えるので、1分待ちましょう。

指定した時間が経過すると、ツールチップで教えてくれます。ツールチップは5秒で自動消去されます。

タイマーの材料

今回のタイマーの材料となっているのがInputBoxToolTipMsgBoxです。ToolTipとMsgBoxについては以前に取り上げているので、この部分をカスタマイズしたい方はこちら。

[AutoHotKey]ツールチップを表示する方法
メッセージボックスは便利ですが、「そこまで出しゃばらなくていい」という場面もあり...
[AutoHotKey]ダイアログを表示するMsgBoxの作り方
今回は「AutoHotKeyでGUI」の事始めとして、メッセージダイアログを表示...

2行目では入力された値をミリ秒に変換して、変数に値を代入しています。変数の代入と呼び出しについてはこちらを参照してください。

[AutoHotKey]変数と関数を使って文字出力スクリプトを改良する
AutoHotKeyはただのキーボードカスタマイズソフトウェアではなく、スクリプ...

今回新しく使用したのが1行目のInputBoxです。これについては以下で解説していきます。

InputBoxの仕様

InputBox, OutputVar [, Title
                    , Prompt
                    , HIDE
                    , Width
                    , Height
                    , X
                    , Y
                    , Locale
                    , Timeout
                    , Default]
;ユーザー入力を受け付けるInputBoxを生成する

InputBoxはユーザー入力を受け付けるウインドウを作り、入力された値を変数に代入するコマンド。引数は最低1つ、最大11もの値をとります。

InputBoxのパラメータ

引数名意味デフォルト値
OutputVarユーザー入力を格納する変数名 (必須)
Titleウインドウのタイトル
Prompt本文のメッセージ
HIDE入力されたテキストを隠し、「*」で表示する
Widthウインドウの横幅375
Heightウインドウの高さ189
X,Y表示するX,Y座標画面の中心
Localeボタンの文字 (OSの言語によって変化)
Timeout入力の時間制限(秒) 経過すると自動的に閉じる– (最大値は24.8日)
Default入力欄のデフォルト値

特に難しい部分は無いですが数が多いです。デフォルト値を利用する場合はカンマの数に気を付けましょう。

InputBoxのErrorLevel

KeyWaitなど多くの他のコマンドと同様、InputBoxもErrorLevelが設定されています。

ErrorLevel発生する場面
0OKボタンが押されたとき
1Cancelボタンが押されたとき
2Timeoutで指定した時間経過で、自動的に閉じたとき

今回のタイマーではif(ErrorLevel == 0){...}でOKボタンが押されたときにタイマーをスタートさせ、else{ExitApp}でOKボタンが押されなかったとき、ファイルの実行を停止しています。

処理的には単純なだけに、様々なカスタマイズが考えられるタイマー、皆さんも今回のコードを参考にしながら、部品を入れ替えたりして自分好みにアレンジしてみてください。

タイトルとURLをコピーしました