Autohotkey + LButton SendInput

873
litu16

Я пытался решить эту проблему в AutoHotkey безуспешно

В программе (отныне называемой VP0) есть горячая клавиша Space Click n Drag to Left/Rightдля установки инструмента Maximum Size

Я хотел бы иметь ту же горячую клавишу, что и в VP0, но использовать ShiftвместоSpace

Проблема в том, что в VP0 есть вторая встроенная горячая клавиша, которая используется Shift Space Click n Drag to Left/Rightдля установки инструмента Minimum Size

Проблема заключается в том, что если я хочу, чтобы установить первую vp0 горячую клавишу в АХК я бы набор LShiftдолжен быть Space(vp0 Tool Максимальный размер), но так как VP0 Tool Min Size = Shift Spaceпри нажатии кнопки, LShiftчтобы установить VP0 Tool Max Sizeего устанавливает VP0 Tool Min SizeПотому AHK обнаруживает, что сдвиг будет нажата.

Я пытался использовать ...

SendInput  SendEvent  

но он просто посылает Shift Up на несколько миллисекунд, затем AHK обнаруживает, что Shift снова нажата, как я могу избежать этого ?? Я также попробовал ЭТОТ BELLOW, но я бы хотел избежать использования петель, потому что он быстро переключается между Set Brush Max Size и Set Brush Min Size.

; Increase/Decrease Tool Size #If WinActive("ahk_exe Verve_painter.exe") && !GetKeyState("XButton1", "P") && !GetKeyState("Space", "P")  LShift & LButton:: ; INCREASE TOOL MAX SIZE Tooltip, AAAAAAAAAAAAAAAAAA Shift LButton SendEvent  SendInput  Click Down While GetKeyState("LButton","P") { SendEvent  } Tooltip, BBBBBBBBBBBBBBBBBBBBBB LButton was realeasedd  SendInput  Click Up Return   $^+LButton:: ; INCREASE TOOL MIN SIZE ;Tooltip, Shiiiit Ctrl Shift LButton SendInput  Sleep 10  SendInput  SendInput  Click Down KeyWait, LButton  SendInput  SendInput  Click Up Tooltip Ctrl SHift LButton was released Return  #If 

Спасибо, Дополнительно.

0
пожалуйста, кто-нибудь помоги litu16 7 лет назад 0

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

1
user3419297

Попробуйте переназначить Shift и Ctrl:

#If WinActive("ahk_exe Verve_painter.exe") && GetKeyState("Shift", "P")  ; Shift+1 $1::  KeyWait, Shift SendInput,  MsgBox, Shift+1 return  ; Shift+2 $2:: KeyWait, Shift SendInput,  MsgBox, Shift+2 return  #If WinActive("ahk_exe Verve_painter.exe")   Shift::Space  Ctrl::Shift  #If 
да, я пробовал это, но у меня есть другие подпрограммы AHK, которые используют горячую клавишу `Shift 1`` Shift 2`, и они не работают, если я это сделаю. любая идея? litu16 7 лет назад 0
Попробуйте мой отредактированный ответ. user3419297 7 лет назад 0
Да, я мог бы сделать это, но я должен был бы создать подпрограмму для каждой горячей клавиши VP0 по умолчанию, которая использует модификатор Shift, который истощает. Итак, пока я использую `SendEvent внутри цикла while`, кстати, почему Ctrl :: Shift ?? litu16 7 лет назад 0

Похожие вопросы