AHKを使った使用例1

TextRunRun を使ってできる事の例を挙げていきます。

ここでは、 AutoHotkey のスクリプトを使ってできる事という事で例を挙げます。

キーを送信

SendAHKコマンド を使う事で特定のキーを送信できます。
Send , a のスクリプトを使う事で A のキーを送信します。

常時使用のキーに登録して使えば簡易的なキー配置変換として使えます。

常時使用のキーb などの単独のキーでも指定する事が出来ます。

諸注意

ただし、キー配置変換として使うなら一時的に使う程度の方が良いと思います。

簡易的に使う分には良いですが、本当の配置変換をしている訳ではないため動作が意図した事とは少し違ったりしていくと思います。

キー配置変換をするなら、 AutoHotkey を使うか、別のソフトを使用した方がよいと思います。

この Send は、 Enter などの文字のキーの場合は
Send , {Enter} などの様に、 { } で括る必要があります。

Ctrl+W のキーで、 Ctrl+F4 のキーを使用したりできます。
このキーはタブを閉じる時によく一般的に使えるキーです。

Ctrl_w.txt
Send ^{F4}

この例はファイルを意味しています。
Ctrl_w.txt がファイル名で、
Send ^{F4} がファイルの中身を表しています。

常時使用のキーを、 キーの一覧 のウインドウを通じて登録してもよいですが、 fromFileName を使用すると、削除と再利用がしやすいのでそれを使って常時使用のキーを登録すると良いと思います。

このファイルを

trrEvery\fromFileName\first\hotkeyAllGround

のフォルダの中に配置して再起動すれば
Ctrl+W のキーで、 Ctrl+F4 が使用できる様になります。

特定のウインドウでのみキーを送信

常時使用のキーは、特定のウインドウがアクティブの場合のみ動作する様にする事ができます。

Ctrl+W のキーで、 Ctrl+F4 を使える様にした場合、
元から Ctrl+W のキーでタブを閉じてくれるソフトの場合は逆にそれが動作しなくなってしまいます。

そのソフトのウインドウタイトルを指定して常時使用のキーを登録しておけば、そのソフトがアクティブの時だけのキーを送信できる様になります。

ウインドウタイトルを調べる時は、

WinGetActiveTitle , V_var1

テキスト から実行すると V_var1 の変数にウインドウタイトルが値として代入されます。

常時使用できるのキーの登録 のウインドウから登録する場合は、
ウインドウタイトルを指定する の入力欄に指定して登録すればそれが可能になります。

先程の様に fromFileName を使用する場合ですと、

trrEvery\fromFileName\first\hotkeyAllGround\[ウインドウタイトル]

のフォルダの中に配置して再起動すれば、指定したウインドウタイトル上でのみ動作する常時使用のキーとして使用できる様になります。

Ctrl_w.txt
Send ^w

このファイルをそのフォルダ内に配置すれば、そのウインドウタイトルがアクティブの時のみ
元の Ctrl+W として使用できるといった事が可能です。

キーを無効にするのに使える

常時使用のキーですが、特定のキーを無効にする場合にも使えます。

常時使用のキー実行する処理 の項目は、カラの状態でも登録できます。 その場合だと、キーを使用しても何もしません。

実行する処理に return だけを記入した場合も、カラの文字だけの登録と同じく何もしません。

以下の例は カタカナ・ひらがな のキーを無効にするものです。

vkF2.txt
; 何も記入しない。または return のみ

このファイルを

trrEvery\fromFileName\first\hotkeyAllGround

のファイル内に配置して再起動をすると カタカナ・ひらがな のキーを押しても、何もしない状態にできます。

vkF2 は、 カタカナ・ひらがな のキーを意味しています。

補足

CapsLock のキーに関してです。

vkF0CapsLock のキーを意味しています。
上の例で、これを使えば CapsLock を無効にする事ができます。

CapsLock のキーは無効にする事はできるのですが、他のキーを動作させるとなると少し難易度が上がるようです。

条件はあまり把握していないので自信をもって言えないとこなのですが、キーが押しっぱなしの状態になる事もあるようです。

CapsLock を使って他のキーを動作させる場合は充分テストをして使用した方がよさそうです。

順番にキーを送信

順番にキーを送信するスクリプトを作っておけば色々な事が便利に使えるようになったりします。

SleepAHKコマンド を使えば、少し遅れてキーを動作させる事ができます。

二行以上のテキスト を使って、以下の例を挙げます。

Send, a
Sleep, 1000
Send, b
Sleep, 1000
Send, c

このスクリプトを実行すると、 abc を少し遅れて順番に送信する事をします。

Sleep では、 1000 の指定が 1秒を意味する指定になります。

以下に Windows10 をシャットダウンする例を挙げます。

例として挙げるものは何でもよいのですが、結局自分が一番多く使用しているのがこの アイテム なのでそれを例に使います。

shutdown.txt
V_var1 := A_ScreenHeight - 22
MouseClick, Right , 25, %V_var1%
Sleep, 1000
Send, u
%--

これは アイテム なので、

trrEvery\fromFileName\first\item

のフォルダ内に配置します。

ファイルを配置した後は TextRunRun を再起動する事で使用ができる様になります。

補足

ファイルを配置した後に

&itemReloadOneFromFileName shutdown

を実行すると TextRunRun を再起動する必要が無く、すぐに使用できるようになります。

使用ができる様になった後は

shutdown

を実行すると、少し間を空けてシャットダウンの一歩手前の状態にもっていきます。

後は U のキーなどを押せばシャットダウンするという事になります。

Windows11 の場合

Windows11 の場合は以下の処理の アイテム にします。

shutdown.txt
SetKeyDelay , 500
Send , {LWin}
Send, +{Tab}
Send, {Right}
Send, {Space}
Send, {Down}
Send, {Down}
%--

この アイテム の場合は、最後は U のキーではなく、 Enter のキーでシャットダウンする事になります。

少し細かい事

さて、時間差をつけて実行させる場合ですが Sleep を使ったスクリプトは、 テキスト から実行した場合、 テキスト が少しの間、次の処理を動作できない状態になります。

続きを見る

これは、 Sleep の処理を使って動作させたスクリプトが完了し終わるまで次の事は出来ない状態になっているという事です。
この状態をここでは「固まる」と表現します。

ここで、 &wait の規定のコマンドを紹介します。
これも時間差を使って遅れて順番に処理を実行させる時に使えるものです。

これを使うと遅れて処理を実行しますが、 テキスト が固まる事はない状態で使用できます。

つまり、少しの間次の処理を動作できない状態になるのを防げます。

その代わり、 タイマー一覧 のウインドウで表される 10種類のタイマーの内の一つを使用して待機します。

先程の shutdownアイテム を、同じ動作をさせる様に置き換えると以下の様になります。

shutdown.txt
V_var1 := A_ScreenHeight - 22
MouseClick, Right , 25, %V_var1% &&& &wait 1s &&& Send, u
%--

こちらの アイテム の場合は、 テキスト から実行したとしても固まる事はありません。

&wait の場合、 1s の指定が 1秒を意味する指定になります。

今回の例では、シャットダウンをする場合なので テキスト が固まっても構わない例かもしれませんが、
続けてキーを少し遅らせながら使う他のスクリプトを作る場合は、 テキスト が固まらない様にする &wait を使うスクリプトにしておく事を一応薦めておきます。

AHKを使った簡単なスクリプト

とりあえず、思いついたものの中で簡単なものを挙げておきます。

使えそうなものは、常時使用のキーとして登録しておくとよいと思います。

WinSet, Topmost, TOGGLE , A

ウインドウを最前面に固定するスクリプトです。
ウインドウがアクティブでなくても前面にでてきます。

もう一度使う事で解除をします。

昔、Flash Player のアップデート画面の最前面の解除をする際によく使っていました。

Reload

TextRunRun を再起動します。

fromFileName の内容を更新したい時などに便利です。

ExitApp

TextRunRun を終了します。

TextRunRun を終了する時はこれを入力して使うもよし、キーに登録してキーで終了できるようにしておくのもよしです。

補足

ExitAHKコマンド もありますが、これはソフトを終了するものではありません。

ソフトを終了する場合は、この ExitApp の方を使います。