1 (изменено: Ennien, 2014-12-27 22:59:11)

Тема: Loop по нажатому сочетанию с модификатором

Доброго времени суток, друзья. Давным-давно уже решал эту проблему, но как – совершенно забыл, а все материалы удалены.

Требуется выполнять Loop для зажатого сочетания клавиш с модификаторами. Вроде Shift + Key.

Сделал для одиночной клавиши:

5::
Loop
 {
  if GetKeyState(5)
   {
     SendInput {Numpad4}
     Sleep 2
   }
  else
   Break
 }

Посоветуйте, как быть, ибо в голову не идёт ничего.  Как можно проверять модификатор+клавишу?

2

Re: Loop по нажатому сочетанию с модификатором

Опишите, как должно работать.

3 (изменено: Ennien, 2014-12-27 23:16:43)

Re: Loop по нажатому сочетанию с модификатором

Зажимается модификатор + клавиша. Например, Shift+1. Пока сочетание нажато, выполняется блок под Loop`ом. Отпущено – выполнение прекращается.

Upd: Снова повесил вариант для одиночной клавиши.

Upd2: В принципе, если сейчас банально дописать модификатор к клавише, то нужный эффект достигается.. Осталось лишь запретить клавише посылать саму себя.

4

Re: Loop по нажатому сочетанию с модификатором

Так не сойдёт?


$+1::
    While GetKeyState(1, "P") {
        SendInput {4}
        Sleep, 10
    }
Return 

5 (изменено: Ennien, 2014-12-28 15:02:39)

Re: Loop по нажатому сочетанию с модификатором

Отличный код, спасибо. Сам пробовал с while, но как-то не доделал. Вне приложения работает идеально, но в оном почему-то срабатывает только после отпускания шифта. То есть вот нажал я shift + 1 – ничего. Отпускаешь шифт, продолжая удерживать 1, – срабатывает. В любом случае, большое спасибо, пища для размышлений появилась. Буду допиливать.

Upd: Что-то я совсем сбит с толку. Теперь и мои скрипты работают так же.  То есть только после того, как отпустишь модификатор.. А вчера было иначе