AHKを説明1

TextRunRun は、 AutoHotkey のスクリプトが使用できます。

AutoHotkey のことを知らなくても、 コマンドランチャーとして使用するだけなら、 TextRunRun は問題なく使って行けます。

しかし、 このホームページ上でも AutoHotkey のスクリプトを例に挙げて説明している個所が多くあるので簡単に説明しておこうと思います。

AutoHotkey のことは、 AHK と呼んでいきます。

% %で変数を囲む

AHK では、変数名を
% % で囲むと、その変数の値として扱えます。

%A_WorkingDir%

AHK のコマンドに変数を指定する場合は、
% % で囲む事で値を指定している事になります。

MsgBox , %A_WorkingDir%

組み込み変数

上の例でも挙げましたが、
AHK には、特別な変数が用意されています。

ほとんどは、 A_ の文字から始まる名前です。

この変数は代入しても値が変わらないようになっています。

ここでは、このホームページ上でもよく使われるものを挙げてきます。

A_ScriptDir

AHKexe ファイルが存在するフォルダのパスの変数です。

TextRunRun なら、その実行ファイルが存在するフォルダのパスの変数です。

A_WorkingDir

作業フォルダに該当する値が格納された変数です。

A_ScriptDir と違って、 SetWorkingDir を使う事で、その作業フォルダを変更できます。

作業フォルダを変更する事で、相対パスを指定した場合の基準となるフォルダの位置が変わります。

TextRunRun上でも同じです。
ファイルパスの相対パスの指定は A_WorkingDir の位置を基準にして指定する事になります。

SetWorkingDir&cd を使うと A_WorkingDir の値を変更できます。

A_MyDocuments

ドキュメントのフォルダのパスを格納した変数です。

AHKのキー名

AHK でキー名は、
ShiftAltCtrl を特別な記号で表します。

Shift +
Ctrl ^
Alt !
Winキー #

これらは、以上の文字で表します。

コメント文

; の文字がコメント文に使われる文字です。
; の文字の後に記述されているその行の文字は全て無視されます。

ただし、 TextRunRun上では 行の先頭にこの文字を使わなければコメント文にする事ができません。

/*  */ の間に記入されている文字もコメント文扱いされて全て無視されます。

ただし、 TextRunRun上では /*  */ の文字を使ってコメント文にする事はできません。

RunのAHKコマンド

RunAHKコマンド は、ソフトを起動させたり、ファイルを開いたりできるコマンドです。

TextRunRun でファイルを開いたり、ソフトを起動させたりする場合はこの Run を使って起動させています。

TextRunRun はテキストにファイルパスを記入すればソフトやファイルを開けますが、
Run も使えるのでそちらを使って開くこともできます。

何かの原因でファイルが意図した通りに起動しない場合は Run を試してみるのもよいと思います。

Run の書式は以下の通りです。

Run , Target [, WorkingDir, Max|Min|Hide|UseErrorLevel, OutputVarPID]

1つめの引数はファイルパスを指定します。

2つめの引数は作業フォルダを指定する場所です。
残りの引数はその他の指定です。

必ず必要なのは1つめの引数のみで、2つめ以降の引数は省略可能です。

ソフトを起動する時に、引数を指定して起動させたい場合は
1つめの引数の Target の部分に指定します。

ファイルパスの後に、半角スペースを付けてその後に記入します。
ショートカットのファイルのリンク先の指定と同じルールだと思います。

補足

引数の指定がファイルパスの場合、
半角スペースが含まれているファイルパスは " " で囲んでいないとファイルパスとして認識できないかもしれません。

キーで実行できるようにしておけば

ストックに Run , の文字を入れておけば
Ctrl+[数字] のキーで Run を使って動作させることができます。

Ctrl+[数字] のキーで使用する場合に作業フォルダを指定する場合は、
ファイルパスの後に , を記入してその後に作業フォルダのパスを記述して Ctrl+[数字] のキーを押せば使用できます。

テキスト上のキーで登録した場合も同じです。

# #を付けたアイテムも可能

TextRunRun のスクリプトは、 AHK のスクリプトとはルールが多少違うので、 # # で展開したファイルパスを利用して続きを記入する事が可能です。

Run , #itemFolder#\soft.exe

外部コマンドといわれるものを使用可能

Run では、 PATH の環境変数の位置に配置されているファイルを実行する事もできるようです。

wordpad

で実行すると、 この場合、さっきの Ctrl+[数字] のキーで実行 ワードパッドを起動させたりできます。

内部コマンドも使用が出来たりします。

このことは内容が難しくなるので別のページで説明します。

AHKの変数の説明

AHKの変数について

AHK の変数の説明が意外と長くなってしまうので、
変数の事だけ説明していきます。

このページではこの後は変数の説明のみをしています。

何度もいいますが、ブランボンの勝手な解釈で語っている説明です。

TextRunRun のことを知る上では知らなければならない事でもないため、
AHK の変数の説明を見たい方でもなければ、これ以降は読んでおかなくてもよい事だという事はいっておきます。

それでは、説明を続けます。

変数の代入

説明する前に、注意点を一つ。

TextRunRun では、グローバル変数でしか変数として意味を成しません。
以下の宣言をするとグローバル変数として使用できます。

global [変数名]

AHK では、変数の代入に使う = が他のプログラムと少し違います。

varName = 文字列
varName := "文字列"

よくあるプログラム言語で使われる =AHK では
:= を使う感じです。

= の方を使った場合は 文字 として代入されます。

varName = 1 + 1
varName の値は 1 + 1

:= の方を使った場合は他のプログラム言語と同じような代入になります。

varName := 1 + 1
varName の値は 2

ですので、変数の代入や関数の返り値の代入などは
:= を使います。

varName := A_WorkingDir
varName := Mod( 5 , 3 )

文字列を代入する場合は " " で括るようにします。
これもよくあるプログラム言語と同じような代入の仕方です。

varName := "文字列"

" " で括らない場合は、変数の値の代入になります。

varName := A_WorkingDir

=を使った変数の代入

では、 = の方を使った場合は変数は使えないかというと、
% % で変数名を囲む方法で代入できます。

varName = %A_WorkingDir%

varName := A_WorkingDir

は、ほとんど同じです。

補足

細かくいうと、

varName = %varName%

の代入は、前後のスペースやタブの文字が取り除かれて代入されます。

AHK では、グローバル宣言時の代入は = は使えません。

一見使えるように見えるのですが、
:= に変換されて処理されているようです。

global varName1 =
global varName2 = 1
なら問題ないですが、
global varName3 = 文字列
の場合は、 文字列 という変数名は存在しないことによるエラーになります。

TrueFalse を代入する場合も := の方を使います。

varName := True
varName := False

AHK では、
True1
False0
を意味していると思ってよいようです。

TrueFalse は、 AHK では変数と同じようなものに近い感じです。
A_ から始まる組み込み変数の様に、値が変更できない変数と似ています。

Guiのチェックボックスのコントロールにおいては、
チェック状態は True 1
チェック状態は False 0
を表しているようです。

値のデータ形式

AHK の変数の型は、文字列として扱われます。

型の宣言は無いので、使用する場合は初期の代入をすれば使えます。

細かいところでは、値の内容によって、値のデータ形式が区別されますが
内部で数値に変換されたりするので文字列を数値に変換する記述などは要りません。

一応、

If Var is [not] integer|float|number|digit
|xdigit|alpha|upper|lower|alnum|space|time

を使うと、値のデータ形式の判別ができたりします。