AHK 将 Alt+Shift+LMB 替换为 Alt+Shift+Ctrl+LMB?

AHK 将 Alt+Shift+LMB 替换为 Alt+Shift+Ctrl+LMB?

我是 AHK 新手,但我可以将几个脚本编写成一个。这:`

!+LButton::
SendInput {MButton down}{RButton down}  
Loop
{
    Sleep, 10
    GetKeyState, state, LButton, P
    if state = U       
    break

}
SendInput {MButton up}{RButton up} 
return

我不知道为什么,但是当我在 MacrorRecorder 或其他程序上调试该脚本时,它写道:

Keyboard : ShiftLeft : KeyDown
Keyboard : AltLeft : KeyDown
Mouse : 193 : 306 : LeftButtonDown : 0 : 0 : 0
Keyboard : ControlLeft : KeyDown
Keyboard : ControlLeft : KeyUp
Keyboard : ControlLeft : KeyDown
Keyboard : ControlLeft : KeyUp
Keyboard : AltLeft : KeyUp
Keyboard : ShiftLeft : KeyUp
Mouse : 193 : 306 : MiddleButtonDown : 0 : 0 : 0
Mouse : 193 : 306 : RightButtonDown : 0 : 0 : 0
Keyboard : ControlLeft : KeyDown
Keyboard : AltLeft : KeyDown
Keyboard : ControlLeft : KeyUp
Keyboard : ShiftLeft : KeyDown
Keyboard : ControlLeft : KeyDown
Keyboard : ControlLeft : KeyUp
Keyboard : AltLeft : KeyUp
Keyboard : ShiftLeft : KeyUp
Mouse : 236 : 336 : MiddleButtonUp : 0 : 0 : 0
Mouse : 236 : 336 : RightButtonUp : 0 : 0 : 0
Keyboard : AltLeft : KeyDown
Keyboard : AltLeft : KeyDown
DELAY : 38
Keyboard : AltLeft : KeyUp
Keyboard : ShiftLeft : KeyUp

CTRL从哪里出现的???哪里出错了?谢谢!

答案1

在鼠标按钮被“单击”之前,Control 键会被切换,但 AutoHotkey 不会像本文标题所暗示的那样替换组合键。我认为记录的击键没有任何问题,因为 Control 键从未被按下以执行任何操作,它只是被按下然后立即再次按下。如果您查看 AutoHotkey 而不是 MacroRecorder 中的脚本击键,您会发现 AutoHotkey 会忽略热键触发后生成的击键,因为它们是在内部生成的。您是否遇到了由于在脚本执行过程中切换 Control 键而导致的其他问题?

仅供参考,您还可以使用Up热键,如下所示...

!+LButton::
    SendInput {MButton down}{RButton down}  
return

!+LButton Up::
    SendInput {MButton up}{RButton up} 
return

相关内容