ほうこうレポート

ほうようポケモン、こうもりポケモン。

【AutoHotKey V2】プログラムが動作しない!問題を解決する方法まとめ【デバッグ】

はじめに

少し前にAutoHotKeyを見つけてから、初心者なりにかなり愛用しているのですが、

普段のコーディングより困ることが多いと感じました。
普段のコーディングならコードが起動できてないことはないんですが、
AutoHotKeyの場合キーが認識してないとかもあるのでむずかしい。

AutoHotKey初心者のために、自分が実際に困ったことと解決した方法をまとめることで
デバッグの方法一覧としておこうという記事です。

僕自身一か月程度の初心者なので逆に初心者の気持ちはわかるでしょう。


記法の問題

初心者なので……。
記法を間違えていることが多々あります。

余計なスペース

AutoHotKey、余計な半角スペースにめちゃくちゃ厳しい。
確かここにスペースがあって怒られた記憶がある。

条件時の実行部は{}で囲う

キーとか、ifとか。

	if TransDegree=""{
		WinSetTransparent 217, "A"
	}

こういうコードを書いたときに、
ifの条件部はかっこも何もいらなくて、条件が当てはまったときの実行部は{}が必要。

各コマンドは()で囲う、ただし引数が1個の時は不要

よく書いてあるコードを見ると
Send "d"
とかあるけど

これはSend(引数1,引数2)であり、
引数1が”d" である

というのが分かってないと永遠に躓き続ける(n敗)

一旦別のキーに変えてみる。

別のキーにしても動かないなら、プログラムの不備。
別のキーにしたら動くなら、キーの認識の問題なのでwikiを要確認

Sleep(数字)を挟んで、処理を遅らせてみる。

早すぎて何起こってるかわからない、があるので。

中に入れる数字はミリ秒なので、
1000を入れると1秒待ちます。

MsgBoxで変数の中身をみる

MsgBox””見たい変数or関数””

とすれば変数の中身を確認できます。

これちゃんとウインドウ認識してんの?

MsgBox "" WinGetTitle("A") ""
でアクティブウインドウのタイトルを取得する、とか。

こういう感じでMsgBoxをぶんぶん振り回していくことになる。
普通のデバッグ。

おわりに

またなんか思いついたら(僕が引っかかったら)追記します。