Как правильно привязать ключ к левой кнопке мыши?

898
長谷川夕実

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

Пример:

c:: MouseClick, Left 

Но если я нажимаю и удерживаю, Cон начинает быстро повторять левый щелчок вместо того, чтобы удерживать его, пока я удерживаю C.

Любая помощь с благодарностью.

0

2 ответа на вопрос

0
PloxPanda

MouseClick в основном используется для нажатия на определенное место и выглядит примерно так

MouseClick, left, 55, 233 

Это все еще будет работать, когда вы используете этот код ниже

c:: MouseClick, Left 

Он будет щелкать при нажатии клавиши C, однако, если вы удерживаете клавишу C, он будет постоянно щелкать спамом. Вы можете решить эту проблему с помощью Click, Down, как показано ниже.

c:: Click, down 

Теперь, когда нажата клавиша C, она будет щелкнуть один раз и удерживать ее, пока нажата клавиша C, активируя, как кнопка мыши.

Здесь больше информации о том, как щелчки мыши работают с AHK здесь.

Объясните свой ответ синтаксисом, используемым в этом скрипте AHK. Biswapriyo 5 лет назад 0
@Biswapriyo Там мы идем вычистили его, оказалось, что есть MouseClick и Click PloxPanda 5 лет назад 0
0
Abr001am

Следуя тому, что дано @Plox, который вводит в заблуждение то, что требуется в этом посте, многое еще предстоит выяснить, если мы поймем, что c:: MouseClick left,,,,, Dработает по тому же механизму, который используется:

c:: MouseClick left,,,,, D return 

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

Можно использовать больше двух паллиативов:

  • Вы выбираете, чтобы просочиться AHK до тех пор, пока не выпустите тот же кей:

    c:: MouseClick left,,,,, D Keywait, c, U MouseClick left,,,,, U return 
  • Или вы предпочитаете оставить интерпретатор AHK свободным вне той же самой процедуры, резервируя переменную gloval, keyboundчтобы запретить повторное обращение к тому же действию снова, если ключ еще не сделан свободным.

    #HotkeyInterval 0  keybound:=0  c:: if keybound return keybound:=1 MouseClick left,,,,, D return  c Up:: MouseClick left,,,,, U keybound:=0 return  

HotkeyInterval некоторый порог отключен, чтобы предотвратить нежелательные предупреждения.