尝试根据按下鼠标中键的持续时间,使它发挥 3 个不同键的功能

尝试根据按下鼠标中键的持续时间,使它发挥 3 个不同键的功能

我正在使用 AHK,我的主要目标是使我的鼠标中键能够像我按下一次时一样正常工作,但如果我按住它 500 毫秒并粘贴复制的内容,则会触发Ctrl+或复制,或者如果我继续按下它 1000 毫秒,则会触发+CCtrlV

我在互联网上搜索了一个星期,但没有找到解决方案(可能是因为我是新手)但这里有一些我发现的代码,我相信可以完成它,但由于某种原因,我无法让它工作。

这是我找到的代码:

RCtrl::    
keyDown := A_TickCount
While GetKeyState("RCtrl", "P")
        Send {Ctrl Down}
    duration := A_TickCount - keyDown
    Send {Ctrl Up}
    if duration < 300
        Send {Enter}
    Return 

我也尝试修改了其中的一些内容

MButton: :
    keyDown := A_TickCount
    While GetKeyState("MButton", "P")
    Send {^C}
    duration := A _TickCount - keyDown
    Send {Ctrl Up}
    if duration < 299
        Send {MButton}
    if duration < 500
        Send {^C}
    if duration < 1000
        Send {^V}
    Return

答案1

#Requires AutoHotkey v1.1

MButton::    
    keyDown := A_TickCount  ; elapsed time in milliseconds since the system was started
    Keywait MButton       ; waits for MButton to be released
    duration := (A_TickCount - keyDown) ; elapsed time since the key has been pressed
    if (duration < 299)
        Send {MButton}
    else if (duration < 500)
        Send ^c 
    else
        Send ^v
Return

A_TickCount

相关内容