使用Autohotkey模拟Ctrl +空格键+ AlphabeticalKey

lar*_*fii 2 autohotkey

我的问题 :

^space & c::
send {F2} 
send {Escape}
Run Code Online (Sandbox Code Playgroud)

但它不起作用,我如何模仿Ctrl+ Space+ AlphabeticaklKey?

MCL*_*MCL 6

正如我之前的发言者所说,这不容易做到.这是我的建议,似乎工作正常:

^space::
    Loop {
        if(GetKeyState("c")) {
            break
        }
        if(!GetKeyState("CTRL") || !GetKeyState("SPACE")) {
            return
        }
        Sleep, 50
    }
    msgbox, You have pressed CTRL+SPACE+C
return
Run Code Online (Sandbox Code Playgroud)

代码非常明显.当按下CTRL+时SPACE,它会等待,直到释放或C按下其中任何一个.后者触发实际功能,否则将返回.
我实际上并不喜欢它,因为理论上它在某些情况下可能会失败(例如,在执行到达检查状态之前按下并释放CTRL+ SPACE+ ;虽然这似乎不太可能).CC

更新

还有一种方法可以使用#If.我建议使用它,因为它更复杂和可靠.这是因为它不需要任何循环:

#If GetKeyState("SPACE")
^c::Msgbox, You have pressed CTRL+SPACE+C

#If GetKeyState("c")
^space::Msgbox, You have pressed CTRL+SPACE+C
Run Code Online (Sandbox Code Playgroud)