在 Windows 上按住 Caps Lock 时可以切换输入法吗?

在 Windows 上按住 Caps Lock 时可以切换输入法吗?

在我的 Linux 电脑上,按住 Caps Lock 键时,键盘会从英语切换到塞尔维亚语。例如,要写 č,我只需按住 Caps Lock,然后按下塞尔维亚语键盘上 č 所在的键(在本例中,该键在英语键盘上是 ;)。当我松开 Caps Lock 时,键盘会“切换回”英语,这样如果我按下 ;,我就会得到所需的 ;。超级有用。

请注意,我知道如何更改键盘布局。我想使用 Caps Lock 作为修饰键,仅在按住时更改语言!

有没有办法在 Windows 7 或 Windows 8 上复制此行为?

备注:这有时被称为“第三级”字符切换(例如,按 Shift 键将进入第二级)。我也不太喜欢 Caps Lock;其他键也可以。

答案1

我测试过的最可靠的 AutoHotKey 脚本是:

*CapsLock::
SetKeyDelay -1   ; If the destination key is a mouse button, SetMouseDelay is used instead.
;send {Blind}{CapsLock DownTemp}
PostMessage, 0x50, 0x02, 1,, A ; 0x50 is WM_INPUTLANGCHANGEREQUEST. 0x02 is forward
return

*CapsLock up::
SetKeyDelay -1  ; See note below for why press-duration is not specified with either of these SetKeyDelays.
;send {Blind}{CapsLock Up}
PostMessage, 0x50, 0x04, 1,, A ; 0x50 is WM_INPUTLANGCHANGEREQUEST. 0x04 is backward
return

注意:您需要在 Windows 区域/语言控制面板中设置 2 种输入语言。

独立可执行版本这里

要停止脚本,请右键单击任务栏中的 H,然后单击暂停/退出。

如果您想保留大写锁定的功能(即:按下它将打开大写锁定并更改语言,释放它将恢复为以前的语言但保持大写锁定),只需删除;两行开头的两个字符send

看看我打字有多快:;č;č;č;č;č;č;č;č

相当快吧?

答案2

您可能可以相当轻松地使用自动热键。如果您以前没有使用过它,您需要稍微了解一下,但它可用于将任何内容映射到任何键。

用于重新映射按键(方便的是,有一个专门针对 Caps Lock 的条目)。

答案3

在 Windows 7 中,您可以通过以下方式设置多个键盘覆盖:

Control Panel-> "Clock, Language, and region" -> "Change Keyboards or other input methods" -> "Keyboards and Languages" tab -> "Change Keyboards"

从这里您可以在已安装的服务下添加塞尔维亚语键盘。

默认情况下,Alt+Shift是在键盘之间切换的默认组合,但您可以在Advanced Key Settings选项卡下自定义它。

据我所知,没有第三级修饰符选项,但此方法允许您交换键集,键入必要的字符,然后再次切换回来。

答案4

@Jared 和 @pleinolijf 之前的两个答案可以一起使用来构建最终答案。

使用 Jared 的答案,您可以为每个键盘布局分配一个热键。

使用 pleinolijf 的答案,您可以编写一个 AutoHotkey 脚本,当按下 CapsLock 时,该脚本将发送热键以切换到塞尔维亚语,然后在释放时发送热键以切换到英语。

无需测试任何内容,这可能类似于:

Capslock::{Serbian-hotkey}
Capslock Up::{English-hotkey}

相关内容