Autohotkey 无论语言设置如何,每次(字母)按键后,在authotkey中发送选项卡

Autohotkey 无论语言设置如何,每次(字母)按键后,在authotkey中发送选项卡,autohotkey,Autohotkey,我正在努力使填写一些网络表格更容易。每个表单可能包含100次在键入一个字母后必须按下tab键才能将下一个字母输入到对应的插槽中。我尝试了一些例子,但在将Windows语言设置更改为俄语时遇到了问题。大多数时候我都会输入俄语字母,如果没有,就输入普通的拉丁字母 我试着遵循一些基本的例子,这些例子一次只适用于一个字母,或者一次适用于所有(拉丁)字母 #UseHook On w::send ш{Tab} 哪个输出 ш(and one single TAB taking me to the next

我正在努力使填写一些网络表格更容易。每个表单可能包含100次在键入一个字母后必须按下tab键才能将下一个字母输入到对应的插槽中。我尝试了一些例子,但在将Windows语言设置更改为俄语时遇到了问题。大多数时候我都会输入俄语字母,如果没有,就输入普通的拉丁字母

我试着遵循一些基本的例子,这些例子一次只适用于一个字母,或者一次适用于所有(拉丁)字母

#UseHook On
w::send ш{Tab}
哪个输出

ш(and one single TAB taking me to the next input)
因此,由于某些原因,字符不能从AHK正确输出

我在这里找到的另一个例子,经过一点修改后,它适用于任何拉丁字母:

我读到,听所有的按键或动作并不理想,因为这也会记录鼠标点击,甚至移动。
那么谷歌有没有其他的选择没有告诉我呢

您在发送Unicode字符时遇到问题吗?
对于欧元符号,我使用以下任一符号:

SendInput {U+20AC}
PostMessage, 0x102, 8364, 1, Edit1, A ;WM_CHAR

ц
变为
ˆ
的问题是由于脚本文件已保存为UTF-8而没有BOM。您只需将文件保存为带有BOM的UTF-8即可。自动热键(从v1.1.30.03开始)将没有BOM表的文件解释为ANSI,因为默认编辑器是记事本,而记事本(Windows版本1903之前)默认为ANSI

第二个脚本通过表达式
Chr(a_Index+96)
注册热键
a
-
z
,该表达式生成拉丁字母。注册后,即使更改键盘布局,当您按下相应的虚拟键时,这些热键也会激活。但是,他们仍然会发送拉丁字母,因为这个热键是
A
-
z

解决方法是使用
~
热键修改器,而不是发送热键。在这种情况下,按该键具有正常应有的效果,然后脚本发送Tab

Loop 26
    Hotkey % "~" Format("vk{:02x}", A_Index+64), AzKey
return
AzKey:
Send {Tab}
return
这将为虚拟键vk41-vk5A注册热键,虚拟键对应于包含这些字符的布局上的A-Z,但也适用于其他布局。但是,可能还有其他一些键会产生“字母”或其他您想要注意的字符;在这种情况下,只需根据需要注册其他热键

Hotkey ~vkC0, AzKey
或者堆叠标签

vkC0::
AzKey:

我会检查输入的使用情况。请参阅:在这里,您可以选择测试输入缓冲区的字符数(在您的案例1中),使用V(可见),键入的字符不仅存储在缓冲区中,而且还发送到webform。只需为每个正确的字符添加一个Send{Tab},然后再次循环回输入
vkC0::
AzKey: