AutoHotkey - Как Blockinput, MouseMove блокирует перемещение курсора из моего стилуса wacom (планшета)

626
litu16

У меня есть скрипт AHK, который перемещает панель из ArtRage, я использую его blockinput, mousemoveперед щелчком и перетаскиванием, поэтому мышь не может перемещать курсор, пока AHK выполняет щелчок и перетаскивание, но поскольку я использую этот скрипт в ArtRage, мой планшет может мешать нажатию и перетаскиванию, несмотря на то, что я использовал blockinput, mousemove, поэтому панель, которую я хотел перетащить, оказывается в другой другой позиции. Есть ли способ временно заблокировать вход с моего планшета Wacom? так что положение стилусов не могло не помешать моему сценарию AHK?

Может ли AHKHID помочь мне в этом вопросе, я увидел, что это очень сложный код. У кого-нибудь есть знания по этому вопросу?

0
Вы щелкаете и перетаскиваете программно, а не используете `WinMove`? JJohnston2 7 лет назад 0
да потому что это не окно, это скорее панель внутри окна artrage и там как 8 панелей с одинаковым именем класса внутри litu16 7 лет назад 0

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

0
JJohnston2

Используйте WinGet,Listдля получения списка всех окон панели с соответствующим идентификатором класса.

Перебрать список. В файлах справки есть пример кода, который в основном уже делает это, просто используйте соответствующий WinTitle для поиска с нужным ahk_classидентификатором.

Внутри цикла используйте WinGetPosдля получения размера и положения каждого окна.

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

Найдя подходящее окно, вы можете разорвать цикл и использовать это окно в качестве аргумента WinMoveдля программного перемещения окна.

Это не прямой ответ на вопрос (как было задано), но он будет более надежным, быстрым и менее неуклюжим, даже если вы поймете, как заблокировать ввод стилуса.

внутри ArtRage все окна называются ToolWindow, поэтому я не могу выбрать один, потому что все они называются одинаковыми litu16 7 лет назад 0
Вам нужно будет использовать идентификатор окна, после просмотра списка идентификаторов, возвращаемого WinGet, List, чтобы определить, какой из них вы хотите переместить JJohnston2 7 лет назад 0
Привет, JJohnston2. Я искал в справке AHK `WinGet` https://autohotkey.com/docs/commands/WinGet.htm, к какому примеру ты приводишь пример? Не могли бы вы опубликовать пример того, как я должен пройти через все окна в ahk_class XXX? спасибо заранее. litu16 7 лет назад 0
Ищите «список». Пример № 2. Чтобы использовать пример кода, замените аргументы списка WinGet для WinTitle и т. Д., Чтобы они соответствовали вашему WinTitle, то есть ahk_class XXX JJohnston2 7 лет назад 0