Autohotkey 自动热键:Ctrl+;1映射

Autohotkey 自动热键:Ctrl+;1映射,autohotkey,Autohotkey,我想根据Numlock的状态将鼠标单击重新映射到按钮。如果Numlock处于“开”状态,则我希望其他正常行为映射到鼠标单击。我在下面创建的脚本工作正常,但我无法重新映射CTRL+1 SHIFT+1将导致“!”这样做很简单,但我不知道CTRL+1的行为是什么。当前脚本具有伪“Send,{^1}”,但这不是真正的行为 我很感激你的建议 *Keywait用于模拟按住鼠标按钮,脚本基于Numlock状态启用/禁用 $1:: if GetKeyState("NumLock","T")

我想根据Numlock的状态将鼠标单击重新映射到按钮。如果Numlock处于“开”状态,则我希望其他正常行为映射到鼠标单击。我在下面创建的脚本工作正常,但我无法重新映射CTRL+1

SHIFT+1将导致“!”这样做很简单,但我不知道CTRL+1的行为是什么。当前脚本具有伪“Send,{^1}”,但这不是真正的行为

我很感激你的建议

*Keywait用于模拟按住鼠标按钮,脚本基于Numlock状态启用/禁用

$1::
    if GetKeyState("NumLock","T")
        Send, {1}
    else
    {
        Click down,
        KeyWait 1  
        Click up        
    }
Return

$+1::
    if GetKeyState("NumLock","T")
        Send, {!}
    else
    {
        Click down,
        KeyWait 1  
        Click up        
    }
Return

$^1::
    if GetKeyState("NumLock","T")
        Send, {^1}
    else
    {
        Click down,
        KeyWait 1  
        Click up        
    }
Return

下面应该完成您所描述的工作,并对代码本身进行一些清理。我还建议阅读各种发送模式,因为
SendInput
几乎在所有可能的方面都具有优越性

$1::
    if GetKeyState("NumLock","T")
        SendInput, 1
    else
    {
        Click down
        KeyWait 1
        Click up
    }
Return

$+1::
    if GetKeyState("NumLock","T")
        SendInput, {!}
    else
    {
        Click down
        KeyWait 1
        Click up
    }
Return

$^1::
    if GetKeyState("NumLock","T")
        SendInput, ^1
    else
    {
        Click down
        KeyWait 1
        Click up
    }
Return

只需执行
Send,^1
Oh我忘了^1不是{Ctrl}的键名。我添加{}只是为了与其他代码格式保持一致。更改为发送,^{1}并且可以正常工作。谢谢