AHKとTRRのスクリプトの比較

AHKのスクリプトとTRRのスクリプト

ソースコード版を使うにあたって、 AHKのスクリプトと TRRのスクリプトを意識する事がでてくると思うのでこのページで取り上げておこうと思います。

AHKのスクリプトとは、本来の AutoHotkey のスクリプトの事です。
当然、 AutoHotkey の本来の書式のままで使用できます。

TRRのスクリプトとは、 テキスト や、 アイテム のスクリプト内に記入するものです。

AHKのスクリプトと似た書式で使用できる様にしたものですが、あくまで似せたものであって本来の書式の様に記述できる訳ではありません。

違いについては以下のページの方で説明しています。

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

細かい説明 AutoHotkeyと違うところ2

コンパイルされた TextRunRun では、 TRRのスクリプトしか使用できませんでしたが、
ソースコード版では、 AHKのスクリプトも使用する事になるので、これらを比較した特徴についてを挙げようと思います。

TRRのスクリプト

TRRのスクリプトのメリット

  • 一行テキスト と同じ。

  • ファイルパスのみの記述でファイルを実行する。

  • アイテム を使用できる。

  • アイテム名# # で囲む方法を使える。

  • 規定のコマンドを使える。

  • エラーになる場合、 TRR 独自のエラーを出力するだけで終わる。

    ただし、対策をしていないエラーの場合は AHK によるエラーがでる。

TRRのスクリプトのデメリット

  • Loop 関係は使えない。

  • オブジェクトに関するものは使えない。

  • 関数やサブルーチンを宣言できない。

  • 一行では、 1 + 1 などの一つの計算はできるが、
    1 + 1 + 1 などの同時の計算はできない。

    V_var1 := 1 + 1
    V_var1 := V_var1 + 1

    といった記述をしていくしかない。

    補足
    if( varName1 == True && varName2 == True ){

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

    varName3  :=  varName1  ==  True
    varName4  :=  varName2  ==  True
    if(  varName3  && varName4  ){
    

    といった記述にして使う事になります。

  • 遅い。簡易的なスクリプトならともかく、そうでないなら遅さを実感する事になる。

  • 不安定。

  • ErrorLevel を使う処理は、 ErrorLevel_TextRunRun を使う事になる。

    それを使う際の、前準備と後処理がいる。

AHKのスクリプト

AHKのスクリプトのメリット

書くまでもなく、 AHK の本来のスクリプトで記述して使える事です。

これに勝る利点はありません。
AHK の事を詳しく知っている方なら何でも出来ます。

AHKのスクリプトのデメリット

簡単に言うと、 TRR のスクリプトのメリットと逆で、それが使えない事です。

ただし、ほとんど代替え案があります。

  • 一行テキスト と違う。

    補足

    とはいっても、全く同じ処理をさせたい場合
    F_textExe( command )
    F_multiplelineExe( command ) の関数を使うと テキスト と同じ指定で使える。

  • ファイルパスのみの記述でファイルを実行できない。

    補足

    とはいっても、 Run , の後にファイルパスを記述すれば実行できる。

  • アイテム を使用できない。

    補足

    とはいっても、 アイテム名 を指定して使いたい場合
    F_textExe( command )
    F_itemExe( command , args ) の関数を使うと同じ指定で使える。

  • エラーになる場合、処理が止まる。

    ただし、処理が止まる方が安全といえるかもしれません。