Что нового

Как сделать автокликер для простой симуляции нажатий клавиш

vodeviling

Новичок
Сообщения
2
Репутация
0
Столкнулся с небольшой трудностью. Мне нужно создать автокликер, который бы после нажатия горячей клавиши (2) нажимал бы:
1)Эту же клавишу(2);
2)Клавишу 3;
3)Снова клавишу 2;
4)Клавишу 4.
Я просмотрел некоторое количество тем посвященных автокликерам и попытался сделать скрипт самостоятельно:

HotKeySet("{2}", "_Func")
While 1
Sleep(5)
WEnd
Func _Func()
Send("{2}")
Sleep(45)
Send("{3}")
Sleep(50)
Send("{2}")
Sleep(60)
Send("{4}")
EndFunc

При включении данного скрипта с компьютером начинает творится что-то неладное. Все кроме того что, когда я нажимаю на 2 появляется последовательность цифр 2324.
Может быть кому-нибудь это поможет, я создаю автокликер для игры Ragnarok Online, а именно для класса Champion (скилл Asura Strike).
Также проблема может быть в том, что на моем компьютере основной язык английский.
У меня стоит Windows 7 Максимальная 32-bit.
Заранее спасибо.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
{CodeWarn}
vodeviling [?]
При включении данного скрипта с компьютером начинает творится что-то неладное.
да он входит в бесконечный цикл. у тебя на "2" вызов функции, которая нажимает "2" снова и так далее.
как вариант - сам вызов функции поставь на клавишу отличную от той, которые нажимаются.
 

zlo-kazan

Скриптер
Сообщения
374
Репутация
100
Через библиотеку IsPressedEx.au3 должно работать.
Код:
#include <IsPressedEx.au3>

HotKeySet("^q", "_Quit")

$hU32_DllOpen = DllOpen("User32.dll")

While 1
	$iRet = _IsPressedEx("[:ALLKEYS:]", $hU32_DllOpen)
	
	If $iRet=32 Then 
	_Func()
	EndIf
	Sleep(10)
WEnd

Func _Func()
   Sleep(45)
   Send("{3}")
   Sleep(50)
   Send("{2}")
   Sleep(60)
   Send("{4}")
EndFunc

Func _Quit()
	DllClose($hU32_DllOpen)
	Exit
EndFunc
 
Автор
V

vodeviling

Новичок
Сообщения
2
Репутация
0
Большое спасибо. Теперь все работает. :IL_AutoIt_1:
 
Верх