AutoHotkeyWikiのサンプルコード集を元にした使用例。その2

前回の続きです。 AutoHotkey WikiのWebサイトにある、サンプルコード集を元にした TRR の使用例を紹介します。

外様のWebサイト

AutoHotkey Wiki は、このホームページとは全く関係のない別のWebサイトです。

あくまで参考例として使用させてもらっています。

AutoHotkey Wiki

今回のこのページで説明する事は、このWebサイトの中にある以下のページを参考にした事について語っています。

AutoHotkey Wiki の サンプルコード集

早速、次の例を紹介します。

キーを押すたびに機能を切り替え

vk1Dsc07B::    ; 無変換
    Flag += 1    ; 判定用に変数に加算していく
    If Flag = 1
    {
        MsgBox,1回目
        Return
    }
    If Flag = 2
    {
        MsgBox,2回目
        Return
    }
    If Flag = 3
    {
        MsgBox,3回目
        Return
    }
    MsgBox,4回目
    Flag =    ; 変数を空にして1回目に戻る
    Return

このスクリプトは変数が必要です。

TRR では、変数はグローバル変数しか使えないので前もって変数を宣言しておかなければいけません。

このスクリプトを TRR で実現しようとすると、以下のようになります。

なお、このページは前回の説明の続きなので、以前のスクリプトに追加して記述したものを載せます。

1_ahkwiki.txt
global ahkwiki_key = vk1D
global ahkwiki_num = 0

この アイテム を作って、そしてそれを起動時に実行させるようにしておきます。
前回も説明しましたが、 startup のフォルダの中に、 1_ahkwiki のフォルダを作っておきます。

そして以下のが、先ほどのスクリプトを変更したものです。

ahkwiki_count.txt
ahkwiki_num += 1
if( ahkwiki_num == 1 ){
    MsgBox, 1回目
    return
}
if( ahkwiki_num == 2 ){
    MsgBox, 2回目
    return
}
if( ahkwiki_num == 3 ){
    MsgBox, 3回目
    return
}
MsgBox, 4回目
ahkwiki_num = 0
%--

なお、これは アイテム です。

グローバル変数しか使えないという違いがありましたが、それ以外はそのままと言えばそのままです。

使う時は、この ahkwiki_countアイテムテキスト から使うか、 キーに登録しておいて使えるようにします。

以下のファイルを hotkeyAllGround のフォルダ内に入れておけば、 元のスクリプトと同じキーである 無変換のキーで実行できるようになります。

vk1D.txt
ahkwiki_count

キーボードでマウス操作

サンプル集のソースコードには WhileLoop を使っているものが載っています。

TRR では、これらは使えないので違う記述で似たような事ができるようにします。

ファイルを一つ一つ作ります。
アイテム ではなく、キーとして設定するものなので
hotkeyAllGround の中に以下のファイルを入れます。

vk1D & e.txt
MouseClick, Left
vk1D & r.txt
MouseClick, Right
vk1D & w.txt
MouseMove, 0, -20, , R
vk1D & a.txt
MouseMove, -20, 0, , R
vk1D & s.txt
MouseMove, 0, 20, , R
vk1D & d.txt
MouseMove, 20, 0, , R

無変換 + A などのキーでマウスを動かします。

とりあえず、似たような事ができると思います。

キー連射のスクリプト

明らかに難しそうなので止めておきます。

特定のウインドウアクティブ時にWindowsキー無効

hotkeyAllGround のフォルダの中に、フォルダを作ると
そのフォルダの名前がウインドウタイトルを意味したものとして扱い、
その中に作ったファイルを利用して登録したキーは、
そのウインドウタイトルがアクティブの時のみ動作するキーとして扱えるようになっています。

LWin.txt
return

このファイルを hotkeyAllGround の直下におけば左のウインドウズキーを無効にでき、
hotkeyAllGround の中に 何かのタイトル の名前のフォルダを作って、その中に配置すれば、
何かのタイトル のウインドウがアクティブの時のみ左のウインドウズキーを無効にするようになります。

ウインドウタイトルを指定するフォルダの名前の指定は全角文字も可能です。

選択した文章、アイコン名で即座に検索

AutoHotkey Wiki のサンプルコード集に載っているものとは趣旨が違うのかもしれませんが、以下の アイテム を作ればグーグルで検索ができます。

GoogleSerch.txt
; type=1
; argument=https://www.google.com/search?q="%*"
C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe

これを item のフォルダの中に配置すれば テキスト上で、

GoogleSerch [検索する文字]

の様に記述すればグーグルで検索できるようになりますし、
テキスト上のキーとして作っておけば、 検索する文字の入力のみで使用もできます。

Ctrl_g.txt
GoogleSerch

これを hotkeyOnText のフォルダの中に配置すれば、 テキスト上で Ctrl+G を押せば GoogleSerch を先頭の文字にして実行できるので、

[検索する文字]

この様に検索する文字だけを テキスト に記入して Ctrl+G を押せばグーグル検索ができるようになります。

それでは、本来の趣旨に近い「選択した文字を検索する」というものを作ると以下のようになると思います。

変数を増やすので 1_ahkwiki.txt のファイルの中に追加します。

1_ahkwiki.txt
global ahkwiki_key = vk1D
global ahkwiki_num = 0
global ahkwiki_clipSave =

次に、 hotkeyAllGround の中に以下のファイルを配置します。

vk1D.txt
ahkwiki_clipSave := Clipboard
Send, ^c
ClipWait, 2
GoogleSerch %Clipboard%
Clipboard := ahkwiki_clipSave
ahkwiki_clipSave =

このファイルを配置すると無変換キーで選択していた文字がグーグル検索されるようになります。

大体はサンプルコード集にあったのと同じ様な事ができると思います。
いろいろ違うかもしれませんが。

音量の制御

ぼぼそのままです。
ここでは一つ一つファイルを作って実現します。

Win_Up.txt
Send, {Volume_Up 1}
Win_Down.txt
Send, {Volume_Down 1}
Win_Left.txt
Send, {Volume_Mute 1}
Win_Right.trr
SetKeyDelay, -1
; 一旦音量を 0 に
Send, {Volume_Down 50}
Send, {Volume_Up 12}

以上です。
これらのファイルを hotkeyAllGround のフォルダの中に配置すれば使用できるようになります。

代替え案

ファイル一つで済ませる方法も紹介しておきます。

こちらは 起動時に実行させるアイテム として作ります。

ahkwiki_volume.txt
&hotkeyAllGroundNewFromCommand ^#Up "Send, {Volume_Up 1}"
&hotkeyAllGroundNewFromCommand ^#Down "Send, {Volume_Down 1}"
&hotkeyAllGroundNewFromCommand ^#Left "Send, {Volume_Mute 1}"
&hotkeyAllGroundNewFromCommand ^#Right "SetKeyDelay, -1`nSend, {Volume_Down 50}`nSend, {Volume_Up 12}"
%--

このファイルを item のフォルダ内に配置して アイテム として登録しておき、
startup のフォルダ内に ahkwiki_volume のフォルダを作って、起動時に実行させるようにします。

今回のは、Ctrl+Windowsキー+矢印キーで動作します。

諸注意

コンパイルに使った AutoHotkey が古いバージョンの場合は音量を変える事ができないと思います。

アイコンの変更など

AutoHotkey Wiki のサンプル集にあるアイコンの変更とは趣旨が全く違う事を説明します。

TextRunRunSuspendPause の状態になる時、

  • trrEvery\doc\icon\Suspend.ico
  • trrEvery\doc\icon\Pause.ico
  • trrEvery\doc\icon\PauseSuspend.ico

この以上のファイルパスの画像が存在していれば、それをアイコンの画像に使うようになっています。

Suspend.ico のファイルが Suspend の状態の時に使われ、
Pause.ico のファイルが Pause の状態の時に使われ、
PauseSuspend.ico のファイルが SuspendPause の両方の状態の時に使われるようになっています。

諸注意

なお、これらのアイコンが使われるのは、 TextRunRunのスクリプト上で Suspendの状態にした時のみアイコンを変更します。

ソースコード版の TextRunRunを使った場合で、 AutoHotkeyのスクリプトから Suspendの状態にした場合は先ほどのファイルの画像への変換は行われません。
その場合は、通常の AutoHotkeySuspend の状態のアイコンに変わるだけです。

さて、 AutoHotkey Wiki のサンプル集から TextRunRun上で使う例をとりあえず紹介しましたが、大体以上の様な感じにして使います。

ネット上で色々紹介されている AutoHotkey のサンプル集を TRR で使う場合ですが、やはりスクリプトを色々と変えていかなければいけない事になります。

現状は、何とか出来ない事もないけど頑張って作り変えて何とか実現できるといったとこです。

よければ今回のを試しに使ってみたり、ネット上のサンプル集を試してみてください。