Help us understand the problem. What is going on with this article?

AutoHotKeyブロックコメントと文字エンコーディング

More than 3 years have passed since last update.

AutoHotKey1.1(=AutoHotKey_L)前提。

AutoHotKeyのブロックコメント

AutoHotKeyのブロックコメントは/* */で表現できる。

ただし、コメントシンボルは必ず行頭に書かれている必要がある。つまり、ブロックコメント終了文字*/も、行末に書いてはならない。

/* ここもコメント
ブロックコメント
*/

; 行コメント

MsgBox, , Title, test ; 行の途中からコメントする場合、`;`の前に空白文字が必要

これが守られない場合――例えば、終了シンボル*/が行末にある場合などは、スクリプトはエラーを出さずに終了する模様。

スクリプトファイルの文字エンコーディング

ここから本題。

ブロックコメントに日本語(マルチバイト文字)が含まれる場合、文字エンコーディングによっては改行が正しく解釈されず、上記のブロックコメントがらみの異常終了を引き起こす可能性がある模様。

例えば、以下の極めて単純なスクリプトをUTF-8(BOMなし)で保存し、実行した場合、メッセージボックスが表示されない。

/*
日本語コメント。この部分は処理に影響しないが、スクリプトファイルの文字エンコーディングによっては問題を引き起こす。
*/
MsgBox, , Title, Test

ファイルをUTF-8(BOMあり)で保存し直した場合、問題なく表示される。

AutoHotKey1.1(AHKL)を利用する場合、原則として、スクリプトファイルはUTF-8(BOMあり)で保存することが望ましい。

スクリプトを全てUTF-8に変換する。コマンド等は日本語を含むことはないのでほぼ問題は無い。
メモ帳などのテキストエディタで開いてエンコードを指定して保存すればよい。
BOMの有り無しを指定できるテキストエディタの場合、エンコードが明示的なBOM付を選択するのが望ましい。

特に、ブロックコメントを含むスクリプトが正常に動かない場合、文字エンコーディングを変更することで解消する可能性がある。

catfist
物書き志望です。
https://wbtmiu.herokuapp.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away