値の評価ルール - x0oey6B8/KeyToKey-Web GitHub Wiki
目次
概要
このページではアクション、マクロ選択画面などで設定する値の種類や書き方、構文など KeyToKeyの値の評価ルール について書いていきます。 値の評価にはC#コンパイラのアナライザーを使用して構文の解析を行っているため基本的にC#の仕様と同じだと思っていただければ構いません。
値の種類について
KeyToKeyのアクションやマクロの引数で使用されている値の種類は以下のとおりです。
- 数値
- 文字列
- 真理値
- キー/マウス
- マウスのボタン
基本的な値の書き方
各値にはそれぞれ書き方のルールがあります。 入力する文字は記号を含め、すべて半角で入力してください(例外あり)
値の種類 | ルール | 例 |
---|---|---|
数値 | 120 , 1.25 |
|
文字列 | "" で文字を囲む必要があります。 |
"テキスト" "" 内であれば日本語や全角文字の使用が可能です。 |
真理値 | True もしくはFalse |
|
キー/マウス | Keys.キーの名前 | Keys.A キーとマウスの値一覧 |
マウスのボタン | MouseButton.値 | MouseButton.Left |
任意 | 上記5つの値であればどれでも可 |
文字列の詳細解説
文字列に関する仕様、注意点について解説します。
文字列内でダブルクォーテーションを扱うには
\"
と記述します。
"\"HELLO!\""
エスケープシーケンス
文字列内では\n
や\t
など一般的なエスケープシーケンスを使用することが可能です。
バックスラッシュはエスケープ文字として扱われるため通常の文字として扱うには\\
と記述する必要があります。
逐語的文字列
""
の前に@
マークをつけることで逐語的文字列になります。
逐語的文字列ではバックスラッシュがエスケープ文字として扱われなくなり通常の文字列として扱われるようになります。
以下のような記述が可能になります。
❌ "C:\User\Desktop"
⭕ @"C:\User\Desktop"
逐語的文字列でダブルクォーテーションを扱うには""
と記述することで一つの"
になります。
文字列補間
""
の前に$
マークをつけることで文字列補間になります。
文字列補間は文字列内に値を埋め込むことが出来ます。
$"こんにちは、{$名前}さん"
($名前は変数)
$@""
もしくは@$""
と記述することで逐語的文字列と併用することも可能です。
文字列補間において中括弧{}
を通常の文字列として扱う場合は中括弧を2つ連続して記述します。
例:{{}}
, 出力:{}
変数
値の代わりに変数を指定することが出来ます。 変数の基本的なことについては変数についてを参照してください。
リストの要素を取得する
$リスト名[番号]
でリストの要素を取得することができます。
なお、[]内では値、変数以外は指定できません。
$リスト[$リスト2[0]]
など
演算子
値の評価ルール適用下では値の演算を行うことが出来ます。
基本演算子
記号 | 式 | 計算結果 | 補足 |
---|---|---|---|
+ | 数値 + 数値文字列 + 任意 | 数値、文字列 | 足し算、どちらかの値が文字列だと文字列を結合した結果を返します。 |
- | 数値 | 数値 – 数値 | 引き算 |
* | 数値 * 数値 | 数値 | 掛け算 |
/ | 数値 / 数値 | 数値 | 割り算 |
% | 数値 % 数値 | 数値 | 余りを求める演算子です。 |
< | 数値 < 数値 | 真理値 | 左の値は右の値より小さいか? |
> | 数値 > 数値 | 真理値 | 左の値は右の値より大きいか? |
<= | 数値 <= 数値 | 真理値 | 左の値は右の値以下か? |
>= | 数値 >= 数値 | 真理値 | 左の値は右の値以上か? |
== | 任意 == 任意 | 真理値 | 左右の値は同じ値か?基本的には同じ値の種類同士でしか使えませんが、どちらかの値が文字列であればどんな型との比較も可能です |
!= | 任意 != 任意 | 真理値 | 左右の値は違う値か?基本的には同じ値の種類同士でしか使えませんが、どちらかの値が文字列であればどんな型との比較も可能です |
&& | 真理値 &&真理値 | 真理値 | 左右の値がTrueか? |
|| | 真理値 && 真理値 | 真理値 | 左右のどちらか一方がTrueか? |
() | かっこをつけると最優先で計算されます。 |
ビット演算子
記号 | 式 | 計算結果 | 補足 |
---|---|---|---|
<< | 数値 << 数値 | 数値 | 左シフト |
>> | 数値 >> 数値 | 数値 | 右シフト |
& | 数値 & 数値 | 数値 | AND |
| | 数値 | 数値 | 数値 | OR |
^ | 数値 ^ 数値 | 数値 | XOR |
~ | ~数値 | 数値 | NOT |
その他構文
インクリメントとデクリメント
インクリメントは値を1増やします。デクリメントは値を1減らします。 これらは数値の変数に使用します。
名前 | 例 | 説明 |
---|---|---|
前置インクリメント | ++$変数名 |
値を評価する前に値を1増やします。 |
後置インクリメント | $変数名++ |
値を評価した後に値を1増やします。 |
前置デクリメント | --$変数名 |
値を評価する前に値を1減らします。 |
後置デクリメント | $変数名-- |
値を評価した後に値を1減らします。 |
符号の反転
値の前に-
を記述することで正の数値をマイナスにします。
-$変数名
代入演算
$変数名 = 値
と記述することで変数に値を代入することが出来ます。
この場合変数に代入された値が評価されます。
例 | 説明 |
---|---|
$変数名 = 値 |
代入 |
$変数名 += 値 |
加算代入(数値と文字列で使用可) |
$変数名 -= 値 |
減算代入(数値のみ) |
$変数名 *= 値 |
乗算代入(数値のみ) |
$変数名 /= 値 |
除算代入(数値のみ) |
メソッド
メソッドはメソッドの名前や引数に応じた値を取得することができます。
記述方法:メソッド名(引数1, 引数2, 引数3)
引数にはそれぞれアクションと同じように渡す値の種類が決まっていて引数が複数ある場合は,
で区切ります。
メソッドを作成するためのウィンドウを用意してあるのでメソッドを手動で入力する必要はありません。
メソッド作成ウィンドウはアクション・マクロ選択画面の右上にある「メソッド作成」をクリックすることで表示することができます。
NOTE: メソッド作成ウィンドウの右上にあるチェックマークボタンはアクション・マクロ選択画面のチェックマークボタンとは違い、押した時にクリップボードにメソッドがコピーされる仕組みになっています。