Условно перехватить щелчок мышью в Autohotkey?

Я хочу иметь скрипт, который будет перехватывать щелчок мыши и вместо этого отправлять нажатие клавиши, но только при включенной клавише capslock. Я хочу, чтобы щелчок мыши отправлялся нормально, если клавиша capslock выключена.

В настоящее время я сделал это:

$LButton::
if GetKeyState("CapsLock", "T") = 1
    send, {a}
else
    send, {LButton}
return

Проблема в том, что когда клавиша capslock выключена, левая кнопка может нормально щелкать, но не может перетаскиваться.

Если я изменю $ в ~, он может перетаскивать, но он также выполняет щелчок при включении клавиши capslock.

Есть ли способ заставить скрипт полностью игнорировать щелчок, если клавиша capslock выключена?

2 ответа

Решение

AHK_L-х #If даст вам то, что вы хотите:

#If GetKeyState("CapsLock", "T")
LButton::Send, a

С этим кодом вам не придется беспокоиться о том, что происходит при отключенной функции capslock. AHK перехватит щелчок на более низком уровне и пропустит его.

Как использовать символ UP.

SetBatchLines, -1   ; you pretty much have to include this to speed up the execution

LButton::
    if( GetKeyState("CapsLock", "T") )
        tooltip, ignore left click
    else
        send, {LButton Down}
return


LButton UP::
    send, {LButton Up}
return
Другие вопросы по тегам