Что нового

[Мышь, клавиатура] Проблема с написанием автокликера

Evil-S[MLZ]

Новичок
Сообщения
6
Репутация
0
Доброе время суток, поискав по форуму, по спрашивал на jabber'е но все же не получил ответ на свой вопрос.
Итак изложу идею:
Имеется скрипт написанный на AutoHotkey, но в силу своих потребностей(ну и желание научится) возникла нужда переписать его на AutoIT.
Код на AutoHotkey:
Код:
MButton::Suspend ;
#NoEnv
#SingleInstance force
#InstallKeybdHook
#InstallMouseHook
#Persistent
#IfWinActive, BF2

DetectHiddenWindows, On
CoordMode, Mouse, Screen
SetBatchLines -1
Var = 1

SetBatchLines -1
Numlock::
  Suspend
  Var:=!Var
  If Var
    {
    SoundBeep, 750, 100
    SoundBeep, 750, 100
    }
  Else
    SoundBeep,1000 , 300
Return

SetBatchLines -1
$*LButton::

{

Loop
{
MouseClick, Left,,, 1, 9.34
SetMouseDelay, 30 
GetKeyState, state, LBUTTON, P
if state = U
{
Break
}

}


}
Return

Пытался переписать его на AutoIT примерно так:
Код:
#Include <Misc.au3>
$clicks=2
$speed=10
$array=MouseGetPos()


While 1
If _IsPressed(01) Then Click()
Wend

Func Click()

MouseClick("Left")
Opt("MouseClickDelay", 100)
Opt("MouseClickDownDelay", 100)
Sleep(20)
EndFunc


HotKeySet("^!j", "Terminate")
Func Terminate()
	    Exit 0
EndFunc
Цель состоит в передаче нескольких нажатий левой кнопки мыши в секунду при её удержании до момента отпускания, при этом позиция курсора не должна изменятся. При этом должна быть горячая клавиша(использую среднюю кнопку мыши) которая может приостановить цикл(Suspend)
Вроде задача не тривиальна,но столкнулся с проблемами вида:
-при удержании левой клавиши скрипт не может симулировать ее нажатие
-не получается зациклить нажатие при удержании клавиши
Так же столкнулся с непоняткой с функцией MouseClick, в справке указывается цитирую:
х,у - (опциональные) Координаты - x/y перемещения мыши. Если не заданы, то используется текущая позиция указателя мыши.
Но если их не указать тогда вылетает ошибка при выполнении.
 
Автор
E

Evil-S[MLZ]

Новичок
Сообщения
6
Репутация
0
(И удерживать ее при этом вовсе ни к чему) - это необходимо для удобства управления, твой вариант не выход, нужно чтобы цикл прекращался если клавиша не удерживается, так же указание координат будет очень некстати ввиду динамического изменения их в приложении.
 
Автор
E

Evil-S[MLZ]

Новичок
Сообщения
6
Репутация
0
qsort это уже ближе к истине, а как можно по той же горячей клавиши приостановить скрипт, чтобы потом его снова возобновить. И еще имеется проблема при отпускании, то есть продолжается симуляция нажатие клавиш когда клавиша мыши уже отпущена.
Проблема с остановкой актуальна


Добавлено:
Сообщение автоматически объединено:

Прихожу к выводу что подобные вещи в AutoIT либо невозможны, либо излишне трудоемки для реализации.
 
Верх