简体   繁体   English

使用 python 创建程序以像在 MacOS 中一样更改 Windows 中的 Caps Lock

[英]Create Program with python to Change Caps Lock in Windows Like in MacOS

I want to make Program with python for change My normal Caps Lock in Windows can do the same think in MacOS.我想用 python 制作程序以进行更改我在 Windows 中的普通 Caps Lock 可以在 MacOS 中做同样的事情。

Features -Press Caps Lock to switch language keyboard.特点 - 按 Caps Lock 键切换语言键盘。 ( Keyboard Layout ) -Hold Caps Lock 1000ms to turn on/off Caps Lock. (键盘布局)-按住大写锁定 1000 毫秒以打开/关闭大写锁定。

I new in python, I think about concept it will work like this.我是 python 的新用户,我考虑过它会像这样工作的概念。

// sudo code
keyboard // keyboard event
keyboard.press // keyboard key press

while (true) // loop for check all the time
{
  if (keyboard.press === 'Caps Lock') { // if press Caps Lock
    n = 0; // create variable
    while (keyboard.press === 'Caps Lock' && n < 1000) { // if press/hold Caps Lock
      delay(1) // delay 1 ms
      n++ // n = n + 1
    }
    // when release key / hold longer 1000ms
    if ( n < 1000 ) {
      // switch language keyboard. ( Keyboard Layout )
    } else {
      // toggle Caps Lock.
    }
  }
}

In the end I use AutoHotKey to switch keyboard language ( Keyboard layout )最后我使用 AutoHotKey 来切换键盘语言(键盘布局)

I have 2 options.我有两个选择。

Option 1. This Script Press Caps Lock to switch Layout but Press Shift + Caps Lock to toggle Caps Lock选项 1. 此脚本按 Caps Lock切换布局,但按 Shift + Caps Lock切换 Caps Lock

; Auto Hot Key Script
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%

sel := 0

#if (sel=0)
capslock::
  send {lwin down}{Space}
  sel := 1
return
#if

capslock up::
  send {lwin up}
  sel := 0
return

Option 2. This Script Press Caps Lock to switch Layout but Hold Caps Lock for 0.5 Second to toggle Caps Lock选项 2. 此脚本按 Caps Lock切换布局但按住 Caps Lock 0.5 秒以切换 Caps Lock

Win + Space can use only windows 8/8.1/10/11 Win + Space 只能使用 windows 8/8.1/10/11

Cr.铬。 : https://www.autohotkey.com/boards/viewtopic.php?f=6&t=95338&fbclid=IwAR1PGe0NfvkfFvvJGkBe89OoLMPQCCsOvm2kELEIkXczRFqcmfbN1ms3txI : https://www.autohotkey.com/boards/viewtopic.php?f=6&t=95338&fbclid=IwAR1PGe0NfvkfFvvJGkBe89OoLMPQCCsOvm2kELEIkXczRFqcmfbN1ms3txI

; Auto Hot Key Script
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%

$CapsLock::
KeyWait, CapsLock, T0.5
If ErrorLevel
{
    if GetKeyState("CapsLock", "T") = 0
    SetCapsLockState on
    else 
    SetCapsLockState off
    Keywait, CapsLock
}
else Send {lWinDown}{Space}{lWinUp} 
Return

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM