AutoHotkey が奇妙な文字を送信する

AutoHotkey が奇妙な文字を送信する

この自動ホットキー スクリプトがあります:

StringCaseSense, On
^'::
{
 Input, char, L1
   if char = a
      Send á
   else if char = A
      Send Á
   else if char = e
      Send é
   else if char = E
      Send É
   else if char = i
      Send í
   else if char = I
      Send Í
   else if char = o
      Send ó
   else if char = O
      Send Ó
   else if char = u
      Send ú
   else if char = U
      Send Ú
   else
      Send %char% ;ignores ctrl+' is if it isn't followed by any of aeioucyAEIOUCY
   return
}

しかし、Ctrl + ' を押してから (たとえば) a を押すと、á (逆さまの ¡ 付き) が挿入されます。しかし、スクリプトでは á を挿入することになっていると書かれています。なぜこうなるのでしょうか?

答え1

これは Unicode/UTF-8 の問題である可能性があり、またその他の問題である可能性もあります。

virtual keyAHK ヘルプ トピックで調べてみます。

これを修正するには、送信しようとしている文字をUnicodeの同等の文字に置き換えることができます...つまり、

Send {U+00FA}      ; Send ú

トレイ アイコンから [表示] メニューを選択してスクリプトのキー履歴で仮想キー コードを探すか、Windowscharmapユーティリティを実行して Unicode 番号を検索すると、Unicode 16 進キーが左下に表示されます。

関連情報