Что нового

[Мышь, клавиатура] Запись Воспроизведение кликов мыши

slavassal

Новичок
Сообщения
2
Репутация
0
Версия AutoIt: 3.

Описание:
Нужны простенькие программы (чтобы несложно было в них разобраться). Одна, при нажатии определённой клавиши, например F1, записывает координаты текущего местоположения мыши в ini-файл. Таким образом мне нужно отследить три местоположения мыши. Потом эту программу закрываю и запускаю другую. Она считывает данные из этого ini-файла, и кликает ЛК мышкой по этим координатам с паузой в 2 минуты. Время паузы также берется из ini-файла.
Примечания:
Время паузы изменять буду самостоятельно, блокнотом :smile:
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Так устроит ? Всё в одном скрипте "F1"-запись координат в ini файл, "F2"- кликает по записанным координатам, "Esc"- выход. Менять паузу в минутах в ini файле блокнотом.
Код:
#include <GUIConstantsEx.au3>
#include <File.au3>
#include <Misc.au3>


$Path = @ScriptDir & '\set.ini';Путь к .ini файлу

If Not FileExists($Path) Then
	_FileCreate($Path)
	IniWrite($Path, 'Pause', 'Pause', 2);Значение паузы по умолчанию 2 мин. Менять в set.ini
EndIf

HotKeySet('{F1}', 'SaveMoseClick');Горячая кнопка для записи 3-х координат клика мышки
HotKeySet('{F2}', 'PlayMouseClick');Горячая кнопка для воспроизведения 3-х координат клика мышки
HotKeySet('{Esc}', '_Exit')


Func PlayMouseClick()
	$coord = IniReadSection($Path, 'MouseClick')
	$Pause = IniRead($Path, 'Pause', 'Pause', 2)

	For $i = 1 To 3
		$ClickCoord = StringSplit($coord[$i][1], ',')

		MouseClick('left', $ClickCoord[1], $ClickCoord[2])
		Sleep($Pause * 1000*60)
	Next


EndFunc   ;==>PlayMouseClick


Func SaveMoseClick()
	Local $i = 0
	Do

		If _IsPressed("01") Then

			;   Цикл ожидания, пока клавиша не будет отпущена.
			While _IsPressed("01")
				Sleep(250)
			WEnd
			$Coord = MouseGetPos()
			$i += 1
			IniWrite($Path, 'MouseClick', $i, $Coord[0] & ',' & $Coord[1])

		EndIf


	Until $i = 3

EndFunc   ;==>SaweMoseClick

Func _Exit()
	Exit
EndFunc   ;==>_Exit

While 1
	Sleep(10)
WEnd
Второй вариант - запись координат без кликов мышки - по нажатию "F1"
Код:
#include <GUIConstantsEx.au3>
#include <File.au3>
#include <Misc.au3>


$Path = @ScriptDir & '\set.ini';Путь к .ini файлу
 Global $i=0

If Not FileExists($Path) Then
    _FileCreate($Path)
    IniWrite($Path, 'Pause', 'Pause', 2);Значение паузы по умолчанию 2 мин. Менять в set.ini
	IniWrite($Path, 'MouseClick', 1, '0,0'); Создание ключей кликов при создании ini файла
	IniWrite($Path, 'MouseClick', 2, '0,0')
	IniWrite($Path, 'MouseClick', 3, '0,0')
EndIf

HotKeySet('{F1}', 'SaveMoseClick');Горячая кнопка для записи 3-х координат клика мышки
HotKeySet('{F2}', 'PlayMouseClick');Горячая кнопка для воспроизведения 3-х координат клика мышки
HotKeySet('{Esc}', '_Exit')


Func PlayMouseClick()
    $coord = IniReadSection($Path, 'MouseClick')
    $Pause = IniRead($Path, 'Pause', 'Pause', 2)

    For $i = 1 To 3
        $ClickCoord = StringSplit($coord[$i][1], ',')

        MouseClick('left', $ClickCoord[1], $ClickCoord[2])
        Sleep($Pause * 1000*60)
    Next


EndFunc   ;==>PlayMouseClick


Func SaveMoseClick()


   If $i=3 then $i=0
            $Coord = MouseGetPos()
			$i += 1
            IniWrite($Path, 'MouseClick', $i, $Coord[0] & ',' & $Coord[1])



EndFunc   ;==>SaweMoseClick

Func _Exit()
    Exit
EndFunc   ;==>_Exit

While 1
    Sleep(10)
WEnd
 
Автор
S

slavassal

Новичок
Сообщения
2
Репутация
0
Ух-ты, спасибо, да ещё в двух вариантах! И всё работает! Для меня, как новичку, многие моменты прояснились, на которых я споткнулся :beer:
 

Nealex2

По крайней мере хочу им стать...
Сообщения
11
Репутация
0
Спасибо. Мне тоже частично помогло.
 
Верх