Что нового

[Мышь, клавиатура] Счетчик времени или как победить безграмотность? Создание кривого макроса.

Falconzo

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

Код:
#Include <Misc.au3>
HotKeySet("ESC", "Terminate")

$1 = 0
$2 = 1
$3 = 10
$4 = 20
$5 = 5
$6 = 15
$7 = 7
$8 = 3
 MouseGetPos()
While 1
$aPos = MouseGetPos()
$bPos = MouseGetPos()
$iStart = TimerInit()
If _IsPressed(01) = 1 Then
    Call("MyCoordinate")
 EndIf

WEnd



Func MyCoordinate()
     While _IsPressed(01) = 1
	  	  $aPos[0] = $aPos[0] - $8
		  $aPos[1] = $aPos[1] + $7
	    	   MouseMove($aPos[0], $aPos[1] ,1)
			 If _IsPressed(01) = 0 then
			      MouseMove($BPos[0] -$4 , $BPos[1] +$6 ,1)
					  EndIf
	  WEnd
	  EndFunc
 

ivsatel

Продвинутый
Сообщения
319
Репутация
84
Falconzo Примерно так:

Код:
#include <Misc.au3>

HotKeySet("{ESC}", "_ProgExit")

$Hi = @DesktopHeight
$Wi = @DesktopWidth

Local $hDLL = DllOpen("user32.dll")

While 1
    If _IsPressed("01", $hDLL) Then
		MouseMove($Wi/2, $Hi/2)
		_Mousmove()
		ExitLoop
    EndIf
    Sleep(50)
WEnd

DllClose($hDLL)

Func _Mousmove()
	$starttimer = TimerInit()
	While 1
		$aMGP = MouseGetPos()
		Switch TimerDiff($starttimer)
			Case Round(TimerDiff($starttimer)) < 3000
				MouseMove($aMGP[0]+50, $aMGP[1]+50)
			Case Round(TimerDiff($starttimer)) > 3000 And Round(TimerDiff($starttimer)) < 6000
				MouseMove($aMGP[0]-50, $aMGP[1]-50)
			Case Round(TimerDiff($starttimer)) > 6000
				MouseMove($Wi/2, $Hi/2)
				ExitLoop
		EndSwitch
		Sleep(100)
	WEnd
EndFunc

Func _ProgExit()
	Exit
EndFunc
 
Верх