嗯,我遇到了和这里描述的一模一样的问题Windows 自行添加其他键盘语言只是我的情况是俄语和日语,我使用日语键盘来输入英语(这完全可行,即使在 CMD 中也是如此,所以我不需要英语布局)。但是,偶尔英语会回来 - 但不在输入语言列表中!以下是这种情况的示例:http://postimg.org/image/h6gkndfkl/- 如您所见,输入语言列表中没有英语,所以我无法将其删除!但如果我尝试切换,它就在我可切换的语言列表中。
解决这个问题的方法是打开“输入语言”,添加英语,应用,删除英语,应用。但这需要手动操作,我不想这样做,因为我不是电脑的仆人。很明显,微软并不关心其系统中的错误,也不会修复它们(顺便说一句,这是一种鼓励付费软件的方式)。
因此,我正在寻找一种自动化的方法来解决这个问题。
一种粗暴的方法是使用宏来完成所有需要的操作,但我认为一定有更好的方法。Windows 一定将这些语言的列表存储在某个地方,不是吗?
我知道“输入语言”窗口中显示的语言列表存储在 HKEY_CURRENT_USER\Keyboard Layout\Preload 中,但这似乎与您按下“切换语言”热键时系统切换的语言列表没有直接关系。一定有其他原因。
有人知道该去哪里看吗?
答案1
到目前为止,暴力破解方法是:Autohotkey 脚本。这不是最佳方法,但可以完成工作:
^+!l::
Run, Control input.dll
Sleep, 1000
Send {Tab}{Tab}
Sleep, 100
Send {Enter}
Sleep, 1000
Send e
Sleep, 100
Send {Down}{Down}{Down}{Down}{Down}{Down}{Down}{Down}{Down}{Down}{Down}{Down}{Down}
Sleep, 100
Send {Right}{Down}{Right}US{Space}{Enter}
Sleep, 100
Send {Tab}{Tab}{Tab}
Sleep, 100
Send {Enter}
Sleep, 1000
Send {Tab}{PgDn}{PgDn}{PgDn}
Send {Tab}{Tab}{Enter}
Sleep, 100
Send A
Sleep, 100
Send {Enter}
return
基本上,当你开始遇到错误时,按下 Ctrl+Shift+Alt+L 即可修复 - 添加英语(美国)并将其删除。可能需要调整等待值,也可能需要调整 Down 的数量 - 我不知道每台计算机上的语言列表是否相同(也许它也会随着时间而变化)。
但是,我更喜欢直接编辑的方式,所以我仍在寻找答案。我的意思是,Windows 必须将其切换的布局存储在某个地方,对吗?