Что нового

[Мышь, клавиатура] Макрос нажатия ЛКМ

TiranCool

Новичок
Сообщения
68
Репутация
0
Версия AutoIt:Version 3.5.4 3.
Код:
#include <Misc.au3>
Opt("MouseClickDelay")
Opt("MouseClickDownDelay")
Global $paused, $t, $hDll
OnAutoItExitRegister("OnExit")
HotKeySet("{F5}", "start")
HotKeySet("{F6}", "pause")
HotKeySet("{0}", "quit")
$aMousePos = MouseGetPos()
$iX = $aMousePos[0]
$iY = $aMousePos[1]
Func OnExit()
    ToolTip("")
    DllClose($hDll)
EndFunc   ;==>OnExit
Func start()
    ; ToolTip("")
    ToolTip("Script started... Press F6 to pause.", 1, 1)
    $paused = False
EndFunc   ;==>start
Func pause()
    $paused = True
    ; ToolTip("")
    ToolTip("Script paused... Press F5 to start.", 1, 1)
    While $paused = True
        Sleep(100)
    WEnd
    ; ToolTip("")
EndFunc   ;==>pause
Func quit()
    Exit
EndFunc   ;==>quit
Func clicks()
    If $t = True Then Return SetError(1, 0, 0)
    $t = True
   MouseClick("left", Default, $iY-10); как тут сделать, не могу понять
    $t = False
EndFunc   ;==>clicks

start()
$hDll = DllOpen("user32.dll")
While 1
    $lkmpressed = _IsPressed("01", $hDll)
    If $lkmpressed Then
        clicks()
    EndIf
WEnd
DllClose($hDlll)


Описание:Не могу сообразить, как при удерживающейся левой клавиши мыши, выполнять команду клик и смещение мыши вниз на столько "..." то пикселей. Помогите пожалуйста

:stars:
 

eralex

Новичок
Сообщения
47
Репутация
3
Используй команды:

MouseDown ( "button" )
MouseMove ( x, y )
MouseUp ( "button" )
 
Автор
T

TiranCool

Новичок
Сообщения
68
Репутация
0
Отчасти подходит, но есть проблема, там конкретные координаты выставляешь, а надо, чтобы в любой точке при этом можно было вести прицел влево вправо самостоятельно. В итоге многократное нажатие ЛКМ + смещение курсора вниз например на 15, но без блокировки движения самой мыши и без привязки к координатам.
 
Автор
T

TiranCool

Новичок
Сообщения
68
Репутация
0
как ей пользоваться, не разу не использовал, почитал, но не понял как.
В начале прописана эта функция, я с ней не пойму, координаты берутся непонятно.
Код:
$aMousePos = MouseGetPos()
$iX = $aMousePos[0]
$iY = $aMousePos[1]
 

Tempo

Скриптер
Сообщения
512
Репутация
157
Код:
#include <Misc.au3>
;Opt("MouseClickDelay")
;Opt("MouseClickDownDelay")
Global $bPaused, $hDll, $aXY
OnAutoItExitRegister("_OnExit")
HotKeySet("{F5}", "_Start")
HotKeySet("{F6}", "_Pause")
HotKeySet("{0}", "_Exit")

$hDll = DllOpen("user32.dll")
_Start()

While 1
	If _IsPressed("01", $hDll) Then
		$aXY = MouseGetPos()
		MouseMove($aXY[0], $aXY[1] - 10)
	EndIf
	Sleep(10)
WEnd

Func _Start()
	ToolTip("Script _Started... Press F6 to _Pause.", 1, 1)
	$bPaused = False
EndFunc   ;==>_Start

Func _Pause()
	$bPaused = True
	ToolTip("Script _Paused... Press F5 to _Start.", 1, 1)
	While $bPaused
		Sleep(100)
	WEnd
EndFunc   ;==>_Pause

Func _OnExit()
	DllClose($hDll)
EndFunc   ;==>_OnExit

Func _Exit()
	Exit
EndFunc   ;==>_Quit
 
Автор
T

TiranCool

Новичок
Сообщения
68
Репутация
0
Все отлично, но влево и в право он не очень поддается, и вопрос еще как ускорить работу цикла, что бы цикл повторялся быстрее?
 

Tempo

Скриптер
Сообщения
512
Репутация
157
TiranCool, 3 параметр MouseMove отвечает за скорость перемещения мыши / убрать Sleep(10) увеличит нагрузку на процессор
 
Автор
T

TiranCool

Новичок
Сообщения
68
Репутация
0
Понял. А ускорить выполнение самого цикла, а точнее нажатия на ЛКМ и ее смещение, можно?
 

Tempo

Скриптер
Сообщения
512
Репутация
157
TiranCool,
Код:
;
MouseMove($aXY[0], $aXY[1] - 10) ;замените -10 на нужное расстояние смещения;
;



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

TiranCool [?]
А ускорить выполнение самого цикла, а точнее нажатия на ЛКМ и ее смещение, можно?
Скрипт не нажимает ЛКМ он лишь смещает мышь когда вы её нажимаете
 
Автор
T

TiranCool

Новичок
Сообщения
68
Репутация
0
нужно добавить ?
Код:
MouseClick("left")
 

Tempo

Скриптер
Сообщения
512
Репутация
157
TiranCool, если вам нужен допольнительный клик (кроме того который произойдет после того как вы отпустите ЛКМ) можете добавить
 
Автор
T

TiranCool

Новичок
Сообщения
68
Репутация
0
нет, нужно во время удерживания клавиши ЛКМ дополнительные нажатия, к примеру с интервалом 50мс, либо двойные клики между циклом. Уже пробовал свой вариант, безуспешен(
Код:
MouseClick("left")
 

Tempo

Скриптер
Сообщения
512
Репутация
157
TiranCool, функция MouseClick включает в себя события нажатия и отжатия так что после её использования _IsPressed будет возвращать False. Используйте другие клавиши для удерживания
 
Верх