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 組合;:'" 為 üäö 附近的鍵,允許您保持幾乎正常的美國編碼佈局,並為您的語言字符騰出空間他們通常居住的地方。

相關內容