AutoHotkeyと違うところ2

AutoHotkeyと違うところ2

普通の使い方 の方で説明した AutoHotkeyと違うところ のページの第2弾です。

第1弾はこちらで確認してください。

普通の使い方 AutoHotkeyと違うところ

本来の AHK のスクリプトとの違いを説明します。

思いついた事を列挙する形で挙げているので 手抜きのような形になっています。

いつかちゃんと分かりやすくしようと思います。

#ではじまる、
プリプロセッサ指令のようなものは使用できません。

%  式
といった、%の後に式を記述する方法は使用できません。

MouseMove, 200, % 100 + valueName

といった事はできません。

%  式 を使わずに引数内で計算できるはずの AHKコマンド の場合も、計算しながらの引数指定はできません。

MouseMove, 200, 100 + valueName

といった事はできません。

valueName  :=  100  +  valueName
MouseMove,  200,  %valueName%

の様にしなければなりません。

式を複数行にわけて分割することはできません。

MsgBox,  番号
        ,  ダイアログ
        ,  メッセージ

といった事はできません。

ヒアドキュメントといわれているものは使えません。

valueName  =
(
    複数行の
    文字列
)

といった事はできません。

文字列の連結は . を必ず使う必要があります。

AHK では、 . を使わなくても文字列の連結が出来るようですが、 TRR上では . が連結の際に必ず必要です。

AHK では、以下の様にしても可能ですが、

funcName( "変数の値は " varName " です。" )

TRR上では

funcName( "変数の値は " . varName . " です。" )

のように、 . を付けます。

AHK のスクリプトは多くの場合、大文字と小文字のどちらを使っても大丈夫な事が多いですが、
TRR上では、大文字と小文字を正しく記述しないと認識できない事が多いです。

特に、AHKコマンド は大文字と小文字を正しく記述しないと認識できません。

AHKコマンド は、基本 , で引数を区切りますが、
スペースでも区切る事が可能です。

WinMaximize A

ですが、 TRR上では、 AHKコマンド, でしか引数を区切れません。

WinMaximize , A

その代わり、 , を無駄に最後に記入していても、
本来の AHK のスクリプトと違って、 最後の引数が無い状態で AHKコマンド を認識できたりします。

Reload ,
Reload は同じものとして動作します。

RegExMatch( ) の関数は使えません。

書式

RegExMatch( Haystack, NeedleRegEx [, UnquotedOutputVar="", StartingPos=1] )

使えないというより、引数3 に代入させるための変数を指定する仕様になっていますが、その変数に値を代入させる事ができません。

この例の様に、思う様に動作しない関数などは他にも色々見つかると思います。

2022年2月14日
今のバージョンで

? を使った条件分岐の構文は使えません。

書式

varName := ( [条件式] ) ? [Trueの場合の値] : [Falseの場合の値]

これは使えないというより、わたくしブランボンが勘違いして違う仕様のものを作ってしまっている状態です。
ですのでいつか直そうと思っています。

暇ができた時に直そうと思っています。
いつになるかは分かりませんが。