Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: SanteR on December 20, 2014, 01:47:05 PM

Title: IF (KEYDOWN(#ctrl)=1)
Post by: SanteR on December 20, 2014, 01:47:05 PM
Добрый день, подскажите как использовать правильно данную конструкцию -
IF (KEYDOWN(#CTRL)=1)
.......
ELSE
IF(KEYUP(#CTRL)=1)
......
Мне нужно проверить по условию нажата ли клавиши CTRL (например) и если она нажата выполнить действия и в тот момент когда клавишу отпустить, выполнить другие действия.
Title: Re: IF (KEYDOWN(#ctrl)=1)
Post by: Oraven on December 20, 2014, 01:55:52 PM
Никак не правильно!
Функция ISKEYDOWN(#CTRL) возвращает при обращении 1 если зажата клавиша, и 0 если отпущена.

Code: (clickermann) [Select]
IF(ISKEYDOWN(#CTRL)=1)
   // действия если зажат CTRL
END_IF

WHILE(ISKEYDOWN(#CTRL)=1) // цикл крутится и не пускает выполнение пока зажат CTRL
   WAITMS(20)
END_CYC
Title: Re: IF (KEYDOWN(#ctrl)=1)
Post by: SanteR on December 20, 2014, 04:07:36 PM
и 0 если отпущена.
Вот не срабатывает с 0 если отпущена
Title: Re: IF (KEYDOWN(#ctrl)=1)
Post by: SanteR on December 20, 2014, 04:28:26 PM
а как можно узнать тогда что клавиша была опущена?
Title: Re: IF (KEYDOWN(#ctrl)=1)
Post by: SanteR on December 20, 2014, 04:49:44 PM
да, нажимаю руками, суть такая когда нажимаю CTRL и не отпускаю ее, появляется мышка и мне мышку нужно переместить в определенное место экрана, затем там уже управляя "мышкой" выбрать нужное место и кликнуть после чего нужно отпустить CTRL и что бы курсор мышки остался на середине и я дальше мог им управлять "мышкой"
Title: Re: IF (KEYDOWN(#ctrl)=1)
Post by: Oraven on December 20, 2014, 05:01:07 PM
А кликер то тебе зачем, раз ты все руками делаешь?
Title: Re: IF (KEYDOWN(#ctrl)=1)
Post by: SanteR on December 20, 2014, 05:27:58 PM
нужно для быстроты, что бы когда нажал ctrl мышка почти сместилась в угол экрана, там я выбираю мышкой кнопку в зависимости от надобности, отпускаю ctrl и она возвращается на середину. вот так нужно сделать
Title: Re: IF (KEYDOWN(#ctrl)=1)
Post by: Oraven on December 20, 2014, 05:39:49 PM
Ну вот, хоть к пятому посту удалось из тебя осмысленный алгоритм выжать  8)

Вот то, что ты так хотел.

Code: (clickermann) [Select]
IF(ISKEYDOWN(#CTRL)=1)
   MOVE(95,144) // перемещаем мышь в угол (напиши свою координату)
   
   WHILE(ISKEYDOWN(#CTRL)=1) // цикл крутится и не пускает выполнение пока зажат CTRL
      WAITMS(20)
   END_CYC
   
   MOVE(INT($_xmax/2),INT($_ymax/2)) // возвращаем в центр экрана (авто)
   WAITMS(100)
ELSE
   WAITMS(20)
END_IF
Title: Re: IF (KEYDOWN(#ctrl)=1)
Post by: SanteR on December 20, 2014, 06:53:25 PM
2 Oraven
Спасибо, твой вариант работает, немного задержки подправил!
Спасибо!