Alaye Dong

Alaye Dong`s xLog

github
bilibili
email

Windows 設定 Capslock 切換中英文輸入

Windows 的默認中英文切換方式體驗較差,Shift 鍵既用於切換大小寫,又用於切換輸入法,容易誤觸。而 macOS 的 CapsLock 方案 —— 短按切換中英文,長按啟用大寫鎖定 —— 更加直觀且減少誤操作。

本文介紹如何使用 AutoHotkey 實現類似 macOS 的 CapsLock 中英文切換方式,讓輸入更高效。

安裝 AutoHotkey#

首先,下載並安裝 AutoHotkey:

安裝完成後,繼續進行 Windows 和 AutoHotkey 設定。

Windows 設定#

在 Windows 中,需要調整一些輸入法設定,以確保 AutoHotkey 腳本正常工作。

  1. 關閉微軟拼音輸入法的 Shift 切換中英文功能

    • 設定時間和語言語言和區域輸入微軟拼音鍵盤
    • 取消勾選 “Shift 切換中英文”
  2. 添加一個英文輸入法

    • 設定時間和語言語言和區域添加語言
    • 選擇 English (United States) 或其他需要的英文鍵盤

AutoHotkey 設定#

創建 AutoHotkey 腳本#

  1. 安裝 AutoHotkey 後,右鍵桌面 → 新建AutoHotkey Script
  2. 右鍵新建的腳本文件,選擇 編輯
  3. 替換內容為以下腳本:

使用 CapsLock 切換中英文輸入法#

#Requires AutoHotkey v2.0
#SingleInstance Force

; 讓腳本在後台持續運行
Persistent

CapsLock::
{
    if (KeyWait("CapsLock", "T0.5")) {
        ; 短按 CapsLock 切換中英文
        Send "{Alt Down}{Shift Down}{Alt Up}{Shift Up}"
    } else {
        ; 長按 CapsLock 進行大小寫鎖定
        SetCapsLockState !GetKeyState("CapsLock", "T")
    }
}

鎖定中文輸入法的中文輸入模式#

為了確保中文輸入法默認處於中文輸入模式,可以使用以下腳本:

來源:gist.github.com

#Include %A_ScriptDir%

timeInterval := 500

InChs() {
  ime_status := DllCall("GetKeyboardLayout", "int", 0, "UInt")
  return (ime_status & 0xffff) = 0x804 ; LANGID(Chinese) = 0x804
}

SwitchImeState(id) {
  SendMessage(0x283,  ; WM_IME_CONTROL
              0x002,  ; wParam IMC_SETCONVERSIONMODE
              1025,   ; lParam (Chinese)
              ,       ; Control (Window)
              id)
}

DetectHiddenWindows True

SetTimer Mainloop, 1000

MainLoop() {
  try {
    hWnd := WinGetID("A")
    id := DllCall("imm32\ImmGetDefaultIMEWnd", "Uint", hWnd, "Uint")

    if (InChs()) {
      SwitchImeState(id)
    }
  }
}

設定腳本開機自啟動#

為了讓腳本每次開機後自動運行,可以將其轉換為 .exe 文件,並放入 Windows 啟動目錄。

轉換 AutoHotkey 腳本為可執行文件#

  1. 在 AutoHotkey Dash 中找到 Compile Open Ahk2Exe - convert .ahk to .exe

  2. 選擇你的 .ahk 腳本,將其編譯為 .exe

  3. 生成的 .exe 文件移動至:

    C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
    

這樣,每次 Windows 啟動時,腳本都會自動運行,無需手動執行。

總結#

通過 AutoHotkey,我們可以實現 CapsLock 短按切換中英文,長按啟用大寫鎖定,從而改善 Windows 輸入體驗。搭配鎖定中文輸入模式的腳本,可以確保中文輸入法默認保持中文輸入。

參考資料#

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。