メッセージボックスは便利ですが、「そこまで出しゃばらなくていい」という場面もありますよね。そんなときにはツールチップ(カーソル合わせた時に出てくる小さいやつ)を使用するのが簡単でオススメです。
今回はAutoHotKeyでツールチップを表示してみたいと思います。
作ってみる
早速作ってみます。トリガーキーは環境に合わせて入れ替えてください。
F13::
FormatTime, today,D4,ggyy年M月d日dddd ;今日の日付を変数todayに代入
ToolTip, %today% ;todayをツールチップで表示
sleep, 3000 ;3秒待機
ToolTip ;ツールチップを消去
return
トリガーを押すと、
マウスカーソルの位置にツールチップが表示されました。
このコードの中でFormatTime
の行はツールチップに表示する「今日の日付」を生成しています。ただ今回の趣旨ではないので、詳しく知りたいという方はWikiをご覧ください。
ToolTipの仕様
ToolTip [, Text, X, Y, WhichToolTip]
;Textをツールチップとして表示する/ツールチップを消去する
引数
ToolTip
は最大4つの引数を取ります。全て省略した場合、「ツールチップを消去する」命令になります。
仮引数名 | 値 |
---|---|
Text | 表示するテキスト |
X , Y | 表示する座標 (省略時はマウスの位置) |
WhichToolTip | ツールチップの番号(1~20まで 省略時は1) |
引数に関しては特に難しい部分はありません。実際に引数を変化させるとどうなるのか見てみましょう。
2つ以上のツールチップを表示する
以下は最初に表示したものを基準に、引数を追加した別のツールチップを表示するコードです。
F13::
FormatTime, today,D4,ggyy年M月d日dddd
ToolTip, %today%
ToolTip, 今日はペヤングソースやきそばの日,1000,1000,2 ;新しいツールチップ
sleep, 3000
ToolTip
return
今回のコードではツールチップ2が有効となり、同時に2つ現れました。x,yの各座標を入力すると、デフォルトではアクティブウインドウの指定ピクセル位置に表示されます。
ツールチップが消えない?
しかしここで問題が起こります。3秒後、ツールチップ1は消去されますが、2は消去されず残ります。ToolTip
の引数を全て省略すると「ツールチップ1を消去する」命令と取られてしまうため、2以降は残ったままです。
2番目のツールチップを消去する場合、その番号だけを引数に含めたToolTip,,,,2
も追加で記述します。引数の順番は固定なので、カンマも必須です。
F13::
FormatTime, today,D4,ggyy年M月d日dddd
ToolTip, %today%
ToolTip, 今日はペヤングソースやきそばの日,1000,1000,2
sleep, 3000
ToolTip
ToolTip,,,,2
return
表示位置を変更する
次に表示位置を変更してみます。単純に数値で変更すると、デフォルトではアクティブウインドウを基準とした座標です。
基準を変更する場合はマウス操作のときと同じCoordMode
を使用します。
今回はToolTip
の座標を指定するので、CoordModeの第一引数はToolTip
です。
F13::
CoordMode, ToolTip, Screen ;CoordeModeで座標の基準を指定
FormatTime,today,D4,ggyy年M月d日dddd
ToolTip, %today%
ToolTip, 今日はペヤングソースやきそばの日,200,130,2 ;座標を指定
sleep, 3000
ToolTip
ToolTip,,,,2
return
CoordMode
はちょっとした記述の違いで座標の基準が変化します。思った場所に出ない場合は、カンマの数や有無に間違いが無いか確認しましょう。
記述 | 基準 |
---|---|
何も書かない(デフォルト)CoordMode, ToolTip,, CoordMode, ToolTip, Relative CoordMode, ToolTip, Window | アクティブウインドウ |
CoordMode, ToolTip CoordMode, ToolTip, CoordMode, ToolTip, Screen | 画面 |