0

如何用CTRL + LBUTTON替换自动热键ALT + LBUTTON

我想要的是在按下 ALT + LBUTTON 并拖动时复制所选文本(拖放)(就像我们在 Windows 中使用 CTRL + LBUTTON 并拖动所选文本时所做的那样)

这是当我们释放快捷方式时工作的代码,但我们必须再单击一次选定的文本然后拖动它。

!LButton:: Lalt::Control

4

2 回答 2

2

这是我想出的解决方案:

!LButton::
    Send {Ctrl Down}{LButton Down}
    dragging := 1
    return

~*LButton::
    if dragging
        Send {Ctrl Up}{LButton Up}
    dragging := 0
    return

我一开始尝试使用鼠标按钮的GetKeyState(),但我发现它不可靠。

还值得注意的是 !LButton 的行为与 Ctrl 修饰符不同。它们必须同时按下,而不是 Alt 和 LButton。

于 2012-10-18T20:29:58.160 回答
0

这是解决方案:

    ;CoordMode, Mouse, Screen

~!LButton::
    ;MouseGetPos, begin_x, begin_y
    while GetKeyState("LButton")
    {
        ;MouseGetPos, x, y
        Send {ctrl down}
        ;ToolTip, % begin_x ", " begin_y "`n" Abs(begin_x-x) " x " Abs(begin_y-y)
        Sleep, 10
    }
    ;ToolTip
Send {Ctrl up}
return
于 2012-10-19T07:48:58.850 回答