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

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

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

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

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

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

SendInput {Shift Up}
SendEvent {Shift Up}

но он просто посылает 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 {Shift Up}
    SendInput {Space Down}
    Click Down
    While GetKeyState("LButton","P")
    {
    SendEvent {Shift Up}
    }
    Tooltip, BBBBBBBBBBBBBBBBBBBBBB LButton was realeasedd

    SendInput {Space Up}
    Click Up
    Return


$^+LButton::    ; INCREASE TOOL MIN SIZE
    ;Tooltip, Shiiiit Ctrl Shift LButton
    SendInput {Ctrl Up}
    Sleep 10

    SendInput {Shift Down}
    SendInput {Space Down}
    Click Down
    KeyWait, LButton

    SendInput {Space Up}
    SendInput {Shift Up}
    Click Up
    Tooltip Ctrl SHift LButton was released
    Return

#If

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

1 ответ1

1

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

#If WinActive("ahk_exe Verve_painter.exe") && GetKeyState("Shift", "P")

       ; Shift+1
    $1:: 
        KeyWait, Shift
        SendInput, {Shift Up}
        MsgBox, Shift+1
        return

      ; Shift+2
    $2::
        KeyWait, Shift
        SendInput, {Shift Up}
        MsgBox, Shift+2
        return

#If WinActive("ahk_exe Verve_painter.exe") 

       Shift::Space

       Ctrl::Shift

#If

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .