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


10

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

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

Answers:


3

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

;^ = 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扩展名的文件。复制并粘贴上面的代码并保存。如果您希望在登录时将其打开,则可以将该文件放入“启动”文件夹。


3

上面的脚本对我不起作用,但是我对其进行了修改,现在可以了。

#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

1

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


2
这样做的问题是,它仅提供3个选项,其中一个不在两种布局上都位于同一键上。另一个选项是为每种语言设置不同的键,但它需要修饰符组合。不理想。
Henrik Erlandsson

0

替代答案

如果两个键盘布局之间的符号差异不大,则可以使用诸如AutoHotKey之类的实用程序为外语添加Alt修饰符(例如,德语键盘Alt层上的标准US Layout符号)。

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

  • 永远不必切换并想知道哪种语言有效(可能会分心)
  • 您可能会经常访问Alt层,这会减慢您的流量。

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

例如,将[]和{}转换为()和[]; ::“的Alt / Shift组合键,以指向üäö附近的键,从而使您可以保持几乎正常的美国布局以进行编码,并为这些位置的语言字符腾出空间他们通常居住的地方。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.