> If msg !=
> 何でif文の中でmsg が%なしで参照できるのか

( )のつかないif文は比較演算子の左辺に来るか右辺に来るかで
変数扱いなのか直値扱いなのかが変わる
左辺は変数なので%%はつけたらだめ
http://ahkwiki.net/IfEqual

>854が言うように旧仕様で分かりにくいので
特にこだわりがないならif文に関しては( )付きの式を使ったほうがいい
http://ahkwiki.net/IfExpression