#autohotkey
#autohotkey
Вопрос:
Мне нужна помощь со сценарием в AutoHotkey, чтобы удерживать нажатой левую кнопку мыши, если я удерживаю клавишу F9, а затем делаю короткий щелчок, а затем клавиша F9 и удерживаемая клавиша мыши снова отпускаются другим щелчком.
Я особенно заинтересован в перемещении объекта с помощью мыши, не удерживая нажатой кнопку мыши из-за физического недостатка.
Я также открыт для других идей.
Комментарии:
1. Вы хотите, чтобы клавиша F9 переключала, удерживается ли нажатой кнопка мыши или нет?
2. Я хочу, чтобы клавиша F9 оставалась удерживаемой и удерживала кнопку мыши нажатой только при дополнительном щелчке мыши. И когда я делаю еще один щелчок, я хочу, чтобы клавиша F9 и кнопка мыши были отпущены. Я прошу прощения, поскольку я использую переводчик Google для перевода, поскольку мой английский недостаточно хорош, чтобы точно объяснить вопрос.
3. Назначение клавиши F9 — гарантировать, что скрипт не воспроизводится при каждом нажатии.
4. Итак, вы хотите, чтобы для запуска скрипта нужно было нажимать на мышь , удерживая нажатой клавишу F9 (и удерживать нажатой кнопку мыши)?
5. Да, точно! — Чтобы подробно объяснить этот вопрос. В основном я использую программу, которая автоматически щелкает, когда указатель мыши остается неподвижным в течение 500 мс, независимо от того, где находится курсор. Итак, я автоматически нажимаю клавишу F9 (экранная клавиатура), затем я автоматически щелкаю объект, затем я хочу, чтобы объект удерживался, и только при повторном автоматическом щелчке я хочу, чтобы обе клавиши были отпущены. На данный момент я использую программу распознавания речи, и каждый раз, когда я хочу удерживать мышь нажатой, я говорю «hold … УДЕРЖИВАЙТЕ …» — это утомительно со временем и раздражает людей в комнате. 😊
Ответ №1:
Поскольку событие «Щелчка» мыши технически состоит из Mouse Down
события, за которым следует Mouse Up
событие, после нажатия клавиши F9 сценарий ожидает начального щелчка, а затем удерживает мышь нажатой. Затем, когда происходит ваш второй щелчок, событие мыши Вверх при втором щелчке должно освободить кнопку мыши. Я протестировал приведенное ниже на своем компьютере (на котором нет экранной клавиатуры с функциональными клавишами), поэтому дайте мне знать, если это не работает должным образом.
F9::
Sleep 100
KeyWait LButton, D
KeyWait LButton
Sleep 400
Send {LButton Down}
return
Редактировать: я добавил небольшую задержку, чтобы она не регистрировалась как двойной щелчок
Комментарии:
1. Спасибо за скрипт, я очень благодарен, что получил такую большую помощь. Итак, теперь я вставил код, но, к сожалению, у меня ничего не получилось. К сожалению, вообще ничего не происходит. Должен ли я обращать на что-то внимание при вставке? Можно ли что-то изменить снова или использовать другую клавишу?
2. Первое, что я бы рекомендовал вам проверить, это убедиться, что скрипт запущен. Самый простой способ сделать это — вставить строку с кодом в самое начало скрипта
Msgbox, The Program is Running
. Чтобы изменить клавишу, которая активирует скрипт, заменитеF9::
наNameOfKey::
. Вот список клавиш в AHK , если вы хотите использовать специальную клавишу3. Кроме того, я забыл упомянуть, что клавиша F9 не будет удерживаться нажатой, поскольку я счел это излишним. Таким образом, способ использования скрипта будет следующим: » 1. Нажмите клавишу F9. 2. Щелкните мышью в верхней части окна, которое вы хотите переместить. 3. Переместите окно в нужное положение. 4. Снова щелкните мышью, чтобы освободить окно.
4. ОК. итак, появляется сообщение о том, что скрипт запущен. Иногда я могу пометить текст после 2-3 щелчков. Но это работает только эпизодически. Но я не могу переместить значок на рабочем столе или окно, например.
5. Хорошо, попробуйте подождать ~ одну секунду между шагами 2 и 3, поскольку для предотвращения возникновения двойных щелчков мне пришлось отложить полсекунды между щелчком активации на втором шаге и действием, удерживающим мышь нажатой.