Что нового

[Мышь, клавиатура] Бинд команд на скрул

InTeamJanny

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

Я ищу программу которая будет выполнять очень простую вещь...

Суть того, что мне нужно:

1) Запустил программу - свернул в трей.
2) При нажатии на (например) "скрул" выполняется следующее (1 цикл)
а) запомнить координаты курсора
б) перевести курсор в координаты x/y (сам их задам)
в) левый клик
г) перевести курсор в исходные координаты (из пункта 1)
д) левый клик

И так надо забиндить 5 кнопок - мышь4, мышь5, скрул, скрул вверх, скрул вниз. Различия на каждой кнопке будет лишь в координатах x/y.

Так вот, можно ли это сделать с помощью autoit?
вобщем... стоил ли мне осваивать эту программу?
Или может уже существует готовая программа которая мне подойдёт?

ps: извеняюсь если пишу не в ту тему... просто уже голова болит от количества прочитанных постов о подобных программах...
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
InTeamJanny
Для работы с мышью есть готовая библиотека:
http://autoit-script.ru/index.php/topic,198.0.html

Например:
Код:
#include <MouseOnEvent.au3>

HotKeySet('^q', '_Quit')

_MouseSetOnEvent($MOUSE_WHEELDOWN_EVENT, 'Mouse3') ; на зажатие средней кнопки

While 1
	Sleep(50)
WEnd

Func Mouse3()
$pos = MouseGetPos()
MouseClick('left',10,100,1)
MouseClick('left',$pos[0],$pos[1],1)
EndFunc

Func _Quit()
	Exit
EndFunc



А так еще хороший вариант - приобрести мышь A4-Tech серии X7
Стоят они несколько сотен рублей, но имеют хорошие возможности по переназначению кнопок и выполнению действий типа тех, которые вы описали, причем все настройки хранятся в памяти, без драйверов.
 
Автор
I

InTeamJanny

Новичок
Сообщения
3
Репутация
0
Может кто возьмётся мне написать эти 5 скриптов? ;)
просто что то я не вьезжаю =)

мышь3 1160;970
мышь4 1020;920
мышь5 1020;970
скрул вверх 1090;920
скрул вниз 1090;970

(1280x1024)
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
Вот что получилось(MouseOnEvent.au3 положить или рядом со скриптом, или в папку Include):


Код:
#include <Misc.au3>
#include <MouseOnEvent.au3>
HotKeySet('{Esc}', '_Quit'); выход по Esc

;_MouseSetOnEvent($MOUSE_WHEELDOWN_EVENT, 'Mouse3') ; на зажатие средней кнопки
_MouseSetOnEvent($MOUSE_WHEELSCROLLUP_EVENT, 'MouseWheelUp'); прокрутка вверх
_MouseSetOnEvent($MOUSE_WHEELSCROLLDOWN_EVENT, 'MouseWheelDown') ; прокрутка вниз
;_MouseSetOnEvent($MOUSE_XBUTTONDOWN_EVENT,'Mouse4') ; 4 или 5 кнопки

$dll = DllOpen('user32.dll')

While 1
	Sleep(200)
	Select
		Case _IsPressed('04', $dll) ; на зажатие средней кнопки
			Mouse3()
		Case _IsPressed('05', $dll); на зажатие 4 кнопки
			Mouse4()
		Case _IsPressed('06', $dll); на зажатие 5 кнопки
			Mouse5()
	EndSelect
WEnd

Func Mouse3()
	$pos = MouseGetPos()
	MouseClick('left', 1160, 970, 1, 0) ; координаты
	MouseClick('left', $pos[0], $pos[1], 1, 0)
EndFunc   ;==>Mouse3

Func MouseWheelUp()
	$pos = MouseGetPos()
	MouseClick('left', 1090, 920, 1, 0); координаты
	MouseClick('left', $pos[0], $pos[1], 1, 0)
EndFunc   ;==>MouseWheelUp

Func MouseWheelDown()
	$pos = MouseGetPos()
	MouseClick('left', 1090, 970, 1, 0); координаты
	MouseClick('left', $pos[0], $pos[1], 1, 0)
EndFunc   ;==>MouseWheelDown

Func Mouse4()
	$pos = MouseGetPos()
	MouseClick('left', 1020, 920, 1, 0); координаты
	MouseClick('left', $pos[0], $pos[1], 1, 0)
EndFunc   ;==>Mouse4

Func Mouse5()
	$pos = MouseGetPos()
	MouseClick('left', 1020, 970, 1, 0); координаты
	MouseClick('left', $pos[0], $pos[1], 1, 0)
EndFunc   ;==>Mouse5

Func _Quit() ; выход
	DllClose($dll)
	Exit
EndFunc   ;==>_Quit

Уж не знаю почему, но в MouseOnEvent.au3 4 и 5 кнопки мыши не разделены, поэтому их сделал через функцию
Код:
_IsPressed
 
Автор
I

InTeamJanny

Новичок
Сообщения
3
Репутация
0
всё работает! :ok:

только, как то он сам закрывается...
и ещё... можно ли сделать так чтобы всё делалось быстрей? чтобы не было видно вобще движения курсора

И ещё курсор часто зависает на координатах... тоесть не возвращается на прежнее место...
 
Верх