Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Autohotkey 自动热键重新定义Shift键仅对第一次按键有效_Autohotkey - Fatal编程技术网

Autohotkey 自动热键重新定义Shift键仅对第一次按键有效

Autohotkey 自动热键重新定义Shift键仅对第一次按键有效,autohotkey,Autohotkey,下面是一个简短的AHK脚本,它有两个功能: 在右alt(AltGr)上创建一个额外的Shift键 将CapsLock重新定义为函数键,用于键入额外字符 它几乎起作用了: 按AltGr+1产生“!”,正如您所期望的那样,一个移位的键 按CapsLock加1会产生“1”,正如您在给出上述定义时所期望的那样 按住AltGr和CapsLock并按“1”时,会出现问题。这会为第一个字符生成预期的“.”,但随后的按操作会生成“ª”。第一次按下后,换档状态似乎被神奇地取消 请注意,“真实”Shift键不会

下面是一个简短的AHK脚本,它有两个功能:

  • 在右alt(AltGr)上创建一个额外的Shift键
  • 将CapsLock重新定义为函数键,用于键入额外字符
  • 它几乎起作用了:

    • 按AltGr+1产生“!”,正如您所期望的那样,一个移位的键
    • 按CapsLock加1会产生“1”,正如您在给出上述定义时所期望的那样
    按住AltGr和CapsLock并按“1”时,会出现问题。这会为第一个字符生成预期的“.”,但随后的按操作会生成“ª”。第一次按下后,换档状态似乎被神奇地取消

    请注意,“真实”Shift键不会出现这种情况—每次Caps+Shift+1都会生成“?”,因此将另一个键重新定义为Shift似乎是个问题,因为它的Shift状态在第一次执行后会被取消


    我遗漏了什么吗?

    一个while循环可能就是你想要的

    示例:

    LShift::
    while (GetKeyState("LShift", "P"))
    {
        SendInput, {¡}
        Sleep, 100
    }
    return
    

    一个while循环可能就是你想要的

    示例:

    LShift::
    while (GetKeyState("LShift", "P"))
    {
        SendInput, {¡}
        Sleep, 100
    }
    return
    

    尝试使用SendInput而不是Send。快速回复!但不幸的是,SendInput的结果是完全相同的。好吧,对不起,我不确定是什么原因造成的。作为一种解决方法,您只需执行
    发送{Shift Down}
    。它不是很优雅,但应该可以工作。尝试使用SendInput而不是Send。快速回复!但不幸的是,SendInput的结果是完全相同的。好吧,对不起,我不确定是什么原因造成的。作为一种解决方法,您只需执行
    发送{Shift Down}
    。它不是很优雅,但应该能用。