Автокликер Clickermann :: Форум
		Основной раздел => Использование => Topic started by: The Egoist on March 10, 2013, 03:14:14 PM
		
			
			- 
				Всем привет!
 Посоветовали вот мне кликерман.
 Пытаюсь написать свой первый скрипт в нем. Смысл такой:
 Нужно чтоб при нажатии кнопки F1 он с имитировал нажатие подряд 7 комбинаций клавиш от Ctrl+0 до Ctrl+4
 Так-же нужно, чтоб он это сделал всего 1 раз и ждал новой команды.
 Получилось так:
 IF (ISKEYDOWN(112)=1)
 KEYDOWN (#CTRL)
 WAITMS (50)
 KEYDOWN (#0)
 WAITMS (50)
 KEYUP (#0)
 KEYUP (#CTRL)
 KEYDOWN (#CTRL)
 WAITMS (50)
 KEYDOWN (#9)
 WAITMS (50)
 KEYUP (#9)
 KEYUP (#CTRL)
 KEYDOWN (#CTRL)
 WAITMS (50)
 KEYDOWN (#8)
 WAITMS (50)
 KEYUP (#8)
 KEYUP (#CTRL)
 KEYDOWN (#CTRL)
 WAITMS (50)
 KEYDOWN (#7)
 WAITMS (50)
 KEYUP (#7)
 KEYUP (#CTRL)
 KEYDOWN (#CTRL)
 WAITMS (50)
 KEYDOWN (#6)
 WAITMS (50)
 KEYUP (#6)
 KEYUP (#CTRL)
 KEYDOWN (#CTRL)
 WAITMS (50)
 KEYDOWN (#5)
 WAITMS (50)
 KEYUP (#5)
 KEYUP (#CTRL)
 KEYDOWN (#CTRL)
 WAITMS (50)
 KEYDOWN (#4)
 WAITMS (50)
 KEYUP (#4)
 KEYUP (#CTRL)
 END_IF
 Хотел вот что узнать:
 
 1. Что не правильно?
 
 2. Возможно ли упростить скрипт?
 Рассмотрим на примере "Ctrl+0"
 Каждый раз когда он нажимает комбинацию "Ctrl+0", то он с начала зажимает "Ctrl", потом зажимает "0", потом всё отжимает.
 Может можно с начала зажать "Ctrl" потом нажать все нужные цифры, а потом отжать "Ctrl" ? И почему "0" нужно зажимать? может его можно просто нажать?
- 
				Все зависит от того где эти клавиши жмутся, тормазная флешь может просто не замечать "молниеносных" нажатий кликера. Поэтому и нужны зажатия клавишь с задержками. Но если 
    KEYDOWN (#CTRL)
 WAITMS (50)
 KEYPRESS (#0)
 KEYUP (#CTRL)
отрабатывает без проблем, то можно и без лишних зажатий.
 
 На счет упрощения ничего не выйдет. Здесь не удастся провернуть такое
 $a = "#0"
 KEYPRESS ($a)
Это не работает.
 
- 
				Конечно можно сначала нажать CTRL и отпустить только в самом конце, почему нет.
 Ещё желательно в конце условия, перед END_IF проверить на отпускание твою клавишу. Чтобы не было не нужных повторов.
    WHILE(ISKEYDOWN(112)=1)
 WAITMS(50)
 END_CYC
 Можно ещё попробовать так:
 IF (ISKEYDOWN(112)=1)
 KEYDOWN (#CTRL)
 WAITMS (50)
 KEYSTRING("0987654",50)
 KEYUP (#CTRL)
 WHILE(ISKEYDOWN(112)=1)
 WAITMS(50)
 END_CYC
 END_IF
 WAITMS(100)
- 
				Можно ещё попробовать так:
 IF (ISKEYDOWN(112)=1)
 KEYDOWN (#CTRL)
 WAITMS (50)
 KEYSTRING("0987654",50)
 KEYUP (#CTRL)
 WHILE(ISKEYDOWN(112)=1)
 WAITMS(50)
 END_CYC
 END_IF
 WAITMS(100)
 
 вот это то - что нужно, но аномалия какая-то:
 он жмет через Ctrl 9865 а 074 пропускает, я уже и задержку увеличивал - не помогает(
 может кто-то знает в чем дело?
 
 *И в самом деле аномалия...
 проверил так:
 IF (ISKEYDOWN(112)=1)
 KEYDOWN (#CTRL)
 WAITMS (50)
 KEYPRESS (#0)
 WAITMS (50)
 KEYPRESS (#9)
 WAITMS (50)
 KEYPRESS (#8)
 WAITMS (50)
 KEYPRESS (#7)
 WAITMS (50)
 KEYPRESS (#6)
 WAITMS (50)
 KEYPRESS (#5)
 WAITMS (50)
 KEYPRESS (#4)
 WAITMS (50)
 KEYUP (#CTRL)
 WHILE(ISKEYDOWN(112)=1)
 WAITMS(50)
 END_CYC
 END_IF
тот-же резултат  :(
- 
				Может задержку именно после этих нажатий нужно больше. Смотря что они делают.
 Нажатия в блокноте (с закомменченым CTRL) идут нормально.
- 
				спасибо всем огромное, разобрался, всё работает) просто функцию невозможно данную было выполнить в тех условиях)
 в общем ВСЁ работает! =)
 
 ещё раз большое спасибо)