1

Тема: Скрипт не срабатывает при нажатом Shift или Ctrl

Здравствуйте. Я написал код, повторяющий нажатие левой кнопки мыши, пока она удерживается:

$LButton::
   Loop
   {
      Click
      Sleep, 10
      If !GetKeyState("LButton", "P")
         Break
   }
Return

Дело в том, что иногда нужно выполнять скрипт, когда нажаты другие клавиши, и если нажат ctrl или shift, скрипт не срабатывает.
Я так понял, что он принимает эти нажатия за команду, а раз команд +LButton и ^LButton нет, то ничего не происходит.
Я пробовал добавить к коду такой кусочек:

$+LButton::
   Loop
   {
      Click
      Sleep, 10
      If !GetKeyState("+LButton", "P")
         Break
   }
Return

Но он не работает (наверно потому что они перекрещиваются друг с другом или типа того).
Что можно сделать? (не нажимать shift или ctrl - не вариант)

2

Re: Скрипт не срабатывает при нажатом Shift или Ctrl

Попробуй так:

LButton::
+LButton::
^LButton::
!LButton::
While, GetKeyState("LButton","P")
	ToolTip, % A_Index
Return

Esc::ExitApp

3

Re: Скрипт не срабатывает при нажатом Shift или Ctrl

Спасибо, можно закрывать

4 (изменено: Mr.Valerij-Zlo, 2018-06-05 14:30:19)

Re: Скрипт не срабатывает при нажатом Shift или Ctrl

Стоп подождите, прошу прощения у меня почти та же проблема но немного отличается. Как мой скрипт нужно прописать, чтобы не перебивал клавишу Shift? Дело в том что при срабатывании скрипта в игре перебивается клавиша Shift. Она мне очень нужна


Control::
{
Send {E}
Sleep, 75
Send {4}
Send, {RButton}
Sleep, 500
Send {2}
}
return

И еще одни вопрос: Можно ли заставить срабатывать скрипт при сочетании клавиш "Space" + "E" и так чтобы их не зажимать одновременно а последовательно и если последняя кнопка не нажимается то "Space" работает как обычный пробел.

5

Re: Скрипт не срабатывает при нажатом Shift или Ctrl

shahlik002 пишет:

LButton:: +LButton:: ^LButton:: !LButton::

*LButton::

Mr.Valerij-Zlo пишет:

не перебивал клавишу

У Send есть опция Blind.

Mr.Valerij-Zlo пишет:

то "Space" работает

Пробел зажали и отпустили, и что должен делать скрипт - ждать нажатия Е или слать пробел?

6

Re: Скрипт не срабатывает при нажатом Shift или Ctrl

stealzy
Нужно, чтобы он в любом случае его отправил как "пробел" + Е, и в тоже время, чтобы "пробел" и "Е" был как часть активации скрипта. Суть такова в игре при сочетании клавиш "Space"+"E" он выполняет необходимое действие, Если в течении нескольких секунд не нажимается вторая клавиша после первой то это действие не работает. после этого действия мне уже и нужна активация скрипта, поскольку он  у меня написан так чтобы в игре оборвать анимацию этого действия. Первая проблема в том что я не знаю как прописать команду так чтобы скрипт срабатывал при сочетании этих клавиш и при этом игра эти же клавиши принимала, а вторая в том что он по каким то причинам прерывает работу шифта в игре

7

Re: Скрипт не срабатывает при нажатом Shift или Ctrl

По нажатию Е измеряете сколько прошло секунд с нажатия пробела - если мало, то активируете, иначе посылаете Е.
Можно сделать Е условным хоткеем, поместив в блок #If (A_PriorKey = ВашаКлавиша) And (A_TimeSincePriorHotkey < нескольких секунд).

8

Re: Скрипт не срабатывает при нажатом Shift или Ctrl

stealzy
Хорошо, спасибо я попробую) а как мне прописать команду чтобы скрипт активировался при сочетании "Space"+"E"? я тут подумал что по идее наверное можно отдельно прописать в скрипте "Space"+"E" выглядеть будет примерно так:


"Space"+"E":: ; вот тут я не знаю как это грамотно прописать
{
Send {Space} ; тут он в любом случае нажимает пробел
Sleep, 75
Send {E} ; а тут через небольшое время Е
Sleep, 75
Send {4}
Send, {RButton}
Sleep, 500
Send {2}
}
return

По идее он в любом случае выполнит то что я хочу только не много не так как хотелось бы)
И да, проблема та же, Шифт перебивается в игре, как исправить?

9

Re: Скрипт не срабатывает при нажатом Shift или Ctrl

stealzy
В принципе все еще проще, к примеру активируется у меня скрипт от "#Е" то-есть если я просто нажму win клавишу она работает как обычная win если сочетать клавишу win+E то он в любом случае активирует по стандарту клавишу win, то-есть всплывает пуск, плюс активируется скрипт. нужно то же самое только от Space+E. Прошу прощения за навязчивость, это очень важно)