在 Windows 7 中切换输入语言的热键

在 Windows 7 中切换输入语言的热键

我正在使用 Windows 7,我想定义一个自定义热键来在不同的输入语言之间切换。

我知道我可以将它们改为Ctrl+ ShiftLeft Alt+Shift或重音符,但我都不喜欢它们。那么有没有办法定义类似Ctrl+的东西Space来切换输入语言?

答案1

我认为 Windows 本身不支持更改这些键。无论如何,你可以编写一个自动识别脚本监听自定义键绑定并以编程方式将预定义的键盘快捷键之一发送到系统以更改键盘布局。

;^ = Ctrl
;! = Alt
;# = WinKey (Meta)
;+ = Shift

HotKeySet("^{Space}", "change") ;Registers Control + Space

;Main loop
While 1
    Sleep(100)
WEnd

;Changes Keyboard Layout
Func change()
    Send ("{ALTDOWN}") ;Hold down Alt
    Sleep(100) ;Wait 100 milliseconds
    Send("{LSHIFT}{ALTUP}") ;Press Left-Shift and release Alt
EndFunc

只需下载并安装 AutoIt(使用此链接下载并安装)并创建一个带有.au3扩展名的文件。复制并粘贴上述代码并保存。如果您希望在登录时打开它,可以将此文件放入启动文件夹中。

答案2

上述脚本对我来说不起作用,但我对其进行了修改,现在它可以工作了。

#Include <Misc.au3>
;~ #RequireAdmin
;^ = Ctrl
;! = Alt
;# = WinKey (Meta)
;+ = Shift

HotKeySet("^{Space}", "change") ;Registers Contorl + Space
$dll = DllOpen("user32.dll")

ToolTip("Try to use ^Space"&@CRLF&"!!!!!!!!!!!!!!!!!!!")
Sleep(3000)
ToolTip('')

;Main loop
While 1
    Sleep(100)
WEnd

;Changes Keyboard Layout
Func change()
 While _IsPressed("11",$dll)
  Sleep(10)
 WEnd
 Send ("{ALTDOWN}") ;Hold down Alt
    Sleep(100) ;Wait 100 milliseconds
    Send("{LSHIFT}{ALTUP}") ;Press Left-Shift and release Alt
EndFunc

答案3

在 Windows 7 中,在控制面板\区域和语言\键盘和语言下,选择“更改键盘”。您将看到一个小弹出窗口;在那里选择“高级键设置”,它允许您设置组合以直接获取每个目标键盘,以及一般的切换键顺序。

答案4

替代答案

如果两种键盘布局在符号上没有太大差别,您可以使用 AutoHotKey 或类似实用程序为外语添加 Alt 修饰符(例如,德国键盘的 Alt 层上的标准美国布局符号)。

或者,创建一个操作系统的键盘映射这是更正确的做法。

  • 永远不需要切换并思考哪种语言是有效的(可能会非常分散注意力)
  • 您可能经常访问 Alt 层,这会减慢您的流量。

对于某些欧洲语言,您可以永久移动字符,而不是使用一层。

例如,将 [] 和 {} 替换为 () 的 Alt/Shift 组合,将 [];:'" 替换为 üäö 附近的键,这样您就可以保留几乎正常的美国编码布局,并在您语言的字符通常所在的位置为其腾出空间。

相关内容