1 (изменено: Kakuo, 2017-09-07 21:26:27)

Тема: AHK: Цикл нажатия клавиш

Надо сделать когда я нажимал ПКМ, Shift отпускался на пол секунды и потом снова нажимался, но при всем при этом все время должен работать пока нажат Shift, а как только я отпускаю Shift скрипт должен перестать работать.
Вот как я пробовал

sc2A::
   Loop
   {
      Send, {vk2}
      Sleep, 500
      If !GetKeyState("vk2", "P")
         Break
   }
   Return

2 (изменено: vvvzn78, 2017-09-13 02:06:41)

Re: AHK: Цикл нажатия клавиш

Попробуйте,  может быть, это подойдёт:


;Обьявляется глобальная переменная:
shiftUp := false  ; - значение этой переменной изменяет ПКМ и клавиша левый Shift
sc2a::
    Loop
    {
        ; Передача нажатий клавиш, например:
        Send Привет{space}

        if(shiftUp)
        {
          Send {shift up}  ; - отжать Shift
          Sleep 500  ; - на 0.5 с
          ShiftUp := false
        }

        break
    }
return

RButton::
  shiftUp := true
  Send {RButton}
return

3

Re: AHK: Цикл нажатия клавиш

Kakuo пишет:

Надо сделать когда я нажимал ПКМ

sc2A — это не ПКМ.

Kakuo пишет:

Shift отпускался

Send, {vk2} — это не отпускание, а одиночное нажатие.

Kakuo пишет:

Вот как я пробовал

Пробуйте еще.

И зачем все это внутри цикла? Шифт должен быть зажат, когда вы нажимаете ПКМ или нет?

4

Re: AHK: Цикл нажатия клавиш

У меня вообще вот так выходит:

mHot:=Shift
SetKeyDelay,500,500

Hotkey,~%mHot%,Shiftd
Shiftd:
Hotkey,RButton,R,on
Hotkey,%mHot%,ret
KeyWait,%mHot%,u
Hotkey,~%mHot%,Shiftd
Hotkey,RButton,R,Off
ToolTip
return
r:
Loop
{
Send {%mHot% up}{%mHot% down}
if !getkeystate("rbutton","p")
	break
}
return
ret:
return

5 (изменено: shahlik002, 2017-09-12 12:12:25)

Re: AHK: Цикл нажатия клавиш

stealzy
Думаю он имел ввиду

~Shift & Rbutton::

Но с этой ~ проблема , ибо без нее Shift не проходит , а с ней - Shift up