如何避免键盘布局在 Windows 上自动更改

and*_*cci 98 windows keyboard windows-xp

我的语言栏中有两种输入语言(windows xp)。问题是窗口喜欢在没有任何干预的情况下在它们之间切换。这真的很烦人!

我知道快捷方式并且已经关闭了 Word 语言检测,但问题无处不在(特别是命令提示符)。

我使用这两种语言,我只想手动在它们之间进行更改。如何关闭此自动更改?

小智 75

默认情况下,ALT+LEFT SHIFT用于在语言之间切换。很容易误按这些按钮,特别是如果您像我一样喜欢键盘而不是鼠标。

要更改此设置,请进入控制面板/区域设置/语言/详细信息,有一个按钮可让您配置切换语言的快捷方式 - 我只是完全禁用它。

在 Windows 7 中,这是控制面板/区域和语言/键盘和语言/更改键盘/高级键设置。

您可能还想在 Word(工具/语言)中禁用自动检测语言。我认为这可能会切换键盘布局以匹配检测到的语言。

  • 这不是一个完整的答案。Word 和其他软件会自动更改语言!让我们感谢微软天才程序员......无论如何,hamstergene可能已经在这里发布了一个可能的解决方案。但我仍然不知道如何彻底解决这个烦人的 Windows 问题。 (6认同)
  • 所以这就是为什么 Visual Studio 过去经常切换我的输入法。我用左手按ALT和SHIFT,用右手按F10。 (4认同)
  • 非常感谢!!我永远在 Visual Studio 中发生这种情况,这真的很痛苦!现在关掉了。 (4认同)
  • 此答案假定问题的根源在于按 Alt+Left Shift。我有这个问题,而且来源不同(尚未确定)。 (4认同)
  • 是的,我知道那个,但不仅仅是 VS,它无处不在。有时,您打开文本文档,Windows 会更改您的语言。啊!现在杀了我。我想要一个:“永远不会自动改变” (3认同)
  • 在 Win7 上,您可以通过以下方式禁用此功能:a) 从语言栏上下文菜单中选择“设置”,然后选择“高级键设置”选项卡,“更改键序列”并禁用快捷方式,或 b) 从控制面板中的“区域和语言”下》 选择“更改键盘或其他输入法”,然后按“更改键盘”并按照 a) 进行操作。 (3认同)

ham*_*ene 36

Windows 为每个线程维护不同的输入语言。当您切换到另一个线程的窗口时,您的输入语言可能会发生变化。因为线程对用户不可见,所以它可能看起来是随机的,我同意这很烦人。

在 Windows 中没有内置选项可以避免这种情况,您可以使用第三方软件或更好的软件。

“更好的事情”是使用 Microsoft Keyboard Layout Creator 创建一个使用 CapsLock 作为语言切换的自定义布局,然后删除所有其他布局(包括默认的英语)。我用英语+俄语完成了这件事,我无法表达从那以后我的生活有多好。检查优点:

  • 输入语言成为系统全局的并且不会自己改变。
  • 您始终可以通过查看键盘上的 LED 来查看当前的语言,即使在语言指示器不可见的全屏应用程序中也是如此。
  • CapsLock 比 Alt+Shift、Ctrl+Shift、Cmd+Space 或其他任何东西更容易按下,你的小指总是靠近它。
  • 意外按下 CapsLock 比 Alt+Shift 或 Ctrl+Shift 更难。
  • 您可以在布局中添加对您有用的其他字符,这些字符可以使用 AltGr+?? 输入,例如:长破折号 —、英文引号“” ''、俄文引号 «»、箭头 ? ?? , 数学符号 ? ± ? (我已经用 RightAlt+Key 输入了所有这些,没有额外的软件,也没有字符代码)
  • 没有第三方应用程序运行,这意味着没有错误,没有托盘图标,没有弹出窗口,没有广告,没有额外的内存使用。
  • 您可以在您使用的所有操作系统中使用相同的语言切换方法(例如,在 Mac OS X 中,有 Ukulele 键盘布局创建器),而不是在每个操作系统中使用特定于操作系统的快捷方式。

缺点是:

  • 它不适用于三种或更多语言。
  • Microsoft Word 和其他一些程序可能无法检测您输入的语言,并且拼写检查可能无法正常工作。对于俄语,通过打开自动语言检测来解决;不过,它可能不适用于基于拉丁语的语言对(例如英语+意大利语)。

在我找到这个解决方案之前,我使用了 SwitchIt!使输入语言设置全局化的程序。它不再开发,所以我不知道它是否仍然适用于 XP/Vista/Win7。

  • “Windows 为每个线程维护不同的输入语言。” <我不明白的是:谷歌浏览器使用多个线程,但键盘布局/语言的变化适用于整个浏览器 - 不是每个标签/线程单独。我一生都无法理解为什么微软在 IE 中使用多线程时没有对 Internet Explorer 做同样的事情。一个在 MS 工作的人甚至将这种奇怪的行为证明为“应用程序应该表现的正确方式”WTF!(为咆哮道歉。) (6认同)
  • 这让我发疯。我认为这是每个进程,而不是每个线程。Windows 8 有一个选项可以在系统范围内设置它,这很棒,尽管这不是每个人的解决方案...... (4认同)
  • @ADTC - Chrome 使用多个线程和进程,但它将所有窗口保持为属于同一个线程,然后让其他线程向该线程发送消息,告诉它在窗口发生变化时更新窗口。您可以在 Chrome 任务管理器中将其视为“浏览器”。 (4认同)

小智 6

我希望这是您一直在寻找的解决方案。我刚刚在尝试使用不同的语言时遇到了同样的问题,因为我将在不久的将来需要它们。我注意到每次我点击右下角的“声音图标”(我使用 vista)它都会变成韩语输入,或者如果我打开 Mozilla Firefox,输入会自动变成韩语(而我一直在一直使用英语)。简而言之,取决于我打开的程序或点击输入语言的变化....烦人吧?如果您希望在系统范围内设置默认值无论您打开什么程序,您都需要执行以下操作

右键单击语言栏,然后在下拉菜单上设置,默认输入语言....选择你想要的。

哦!我花了 3 个小时才弄明白……这应该是我马上就想到的,因为我几乎是用电脑出生的,现在这对我来说应该是常识吗?呵呵


小智 2

如果您不使用这两种输入语言,只需卸载另一种即可。