Что нового

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

Pashtet

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

Описание: Собственно, необходим простенький скрипт, который бы привязывал клик по определенным координатам (задаваемым пользователем) к нажатию клавиши (также определяемой пользователем).

Примечания: К сожалению, мои навыки в программировании оставляют желать лучшего, поэтому был бы очень благодарен (если кто-то возьмется написать скрипт, конечно ;D), если объясните как работать с этим скриптом. Заранее спасибо!
 

rusreg79

Продвинутый
Сообщения
159
Репутация
57
Код:
HotKeySet("{F1}", "_MouseClick1");Устанавливает горячую клавишу F1
Func _MouseClick1()
	MouseClick('Left',100,200)
EndFunc

HotKeySet("{F2}", "_MouseClick2");Устанавливает горячую клавишу F2
Func _MouseClick2()
	MouseClick('Left',200,200)
EndFunc

HotKeySet("1", "_MouseClick3");Устанавливает горячую клавишу 1
Func _MouseClick3()
	MouseClick('Left',100,300)
EndFunc

HotKeySet("2", "_MouseClick4");Устанавливает горячую клавишу 2
Func _MouseClick4()
	MouseClick('Left',200,300)
EndFunc



While 1
	Sleep(100)
WEnd

#cs
	MouseClick ( "button" , x, y , clicks , speed  )

	button 	Кнопка для клика: "left", "right", "middle"
	x, y 	координаты x/y, куда будет перемещён курсор
	clicks 	число кликов. По умолчанию 1.
	speed 	скорость перемещения курсора мыши в диапазоне от 1 (быстро) до 100 (медленно)
#ce
 

megatoxx

Новичок
Сообщения
7
Репутация
0
спасибо, программа супер, но возникла проблема, как установить клики на num клавишах? и как сделать клики моментальными с нажатием клавиши? а то курсор недостаточно быстро двигается в нужную координату
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
как установить клики на num клавишах?
В функциях
Код:
HotKeySet()

первым параметром пропишите num-клавиши от {NUMPAD0} до {NUMPAD9}
Код:
HotKeySet("{NUMPAD0}", "_MouseClick1")

NumLock должен быть включён !
как сделать клики моментальными
В функциях
Код:
MouseClick()

укажите четвёртый и пятый параметры. Четвёртый - количество кликов, пятый - скорость перемещения курсора (0 - мгновенно).
Код:
MouseClick('Left',200,200,1,0)
 

megatoxx

Новичок
Сообщения
7
Репутация
0
ещё вопросик: а реально ли сделать так чтобы допустим нажимая одну клавишу программа кликала рандомно в одну из 5 заданных координат?
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Код:
Dim $rnd[5][2] = [[100, 200], [200, 200], [100, 300], [200, 300], [300, 300]]

HotKeySet("{NUMPAD0}", "_MouseClick")

Func _MouseClick()
  $i = Random(0, 4, 1)
  MouseClick('Left', $rnd[$i][0], $rnd[$i][1], 1, 0)
EndFunc

While 1
    Sleep(100)
WEnd
 

megatoxx

Новичок
Сообщения
7
Репутация
0
ещё вопросик: как привязать клики к стрелочкам на клаве? поиск юзал ничего толком не нашёл =( заранее спасибо
 

sss

Продвинутый
Сообщения
332
Репутация
96
В справке в Приложении (Appendix) есть подробный список обозначений кнопок (Send Key List, по-русски не помню).
{DOWN} - вниз, {LEFT} - влево, и т.д.
И подставлять это в строчку HotKeySet("вот сюда", "_MouseClick")
 

megatoxx

Новичок
Сообщения
7
Репутация
0
ребята!! вопрос на миллион, реально ли привязать одной клавише 2 рандомных клика из двух наборов координат? если да то пожалуйста распишите пожалуйста, наборы состоят из 5 координат, если нельзя то скажи как в 1 скрипт воткнуть 2 разных рандома на 2 разные кнопки.
С уважением.
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Так?
Код:
HotKeySet("{F1}", "_MouseClick")

While 1
    Sleep(100)
WEnd

Func _MouseClick()
    MouseClick('Left',Random(0,1000,1),Random(0,1000,1))
    ;Sleep(500)
    MouseClick('Left',Random(0,500,1),Random(0,999,1))
    ;...
EndFunc
 

megatoxx

Новичок
Сообщения
7
Репутация
0
да, ты БОГ))) а теперь если не затруднит распиши пожалуйста куда пихать мои наборы 5 координат в эти строки? и если слип поставить 0 он сделает оба клика разом?
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
megatoxx [?]
распиши пожалуйста куда пихать мои наборы 5 координат в эти строки?

Вам InnI уже показал куда их пихать

Код:
Dim $rnd[5][2] = [[100, 200], [200, 200], [100, 300], [200, 300], [300, 300]]

HotKeySet('{F1}', '_MouseClick')

While 1
	Sleep(100)
Wend

Func _MouseClick()
  $i = Random(0, 4, 1)
  MouseClick('Left', $rnd[$i][0], $rnd[$i][1])
  $i = Random(0, 4, 1)
  MouseClick('Left', $rnd[$i][0], $rnd[$i][1])
EndFunc


если слип поставить 0 он сделает оба клика разом?

Нет, по очереди.
 

megatoxx

Новичок
Сообщения
7
Репутация
0
Виктор, вы меня наверно не так поняли, мне надо чтобы скрипт выбирал рандомную координату из первых 5, и второй клик - рандомная координата и второй пятёрки, вообщем что-то типа того что расписал Zaramot только мне надо знать куда первую пятёрку вставить и куда вторую. как-то так вообщем. заранее спасибо
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Так?

Код:
;~ первая пятёрка координат
Dim $rnd1[5][2] = [[100, 200], [200, 200], [100, 300], [200, 300], [300, 300]]

;~ вторая пятёрка координат
Dim $rnd2[5][2] = [[150, 250], [250, 250], [150, 350], [250, 350], [350, 350]]

HotKeySet('{F1}', '_MouseClick')

While 1
	Sleep(100)
Wend

Func _MouseClick()
    
	;~ рэндомно выбираем координаты из первой пятёрки
    $i = Random(0, 4, 1) 
    MouseClick('Left', $rnd1[$i][0], $rnd1[$i][1])
  
    ;~ рэндомно выбираем координаты из второй пятёрки
    $i = Random(0, 4, 1)
    MouseClick('Left', $rnd2[$i][0], $rnd2[$i][1])
EndFunc
 

megatoxx

Новичок
Сообщения
7
Репутация
0
Да, именно то что надо! Огромное спасибо.
 

artzoom

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

getigor01

Новичок
Сообщения
23
Репутация
2
Код:
Global $MousePos 
$Mouse = MouseGetPos()
MouseMove($MousePos[0],$MousePos[1],1)
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Пожелание:
getigor01
Проверяйте работу скрипта, прежде, чем выкладывать.
 

er1cius

Новичок
Сообщения
2
Репутация
0
[Мышь, клавиатура] Re: [Мышь, клавиатура] Привязка клика по координатам к клавише

Доброй ночи. Необходима помощь малообразованному в данной программе человеку.
Ситуация: есть, допустим, приложение или игра, которые на компе управляются исключительно мышью, но для упрощения работы необходима привязках манипуляций мышью к клавишам. Из данной темы было почерпнута функция HotKeySet - MouseClick в виде:

Код:
HotKeySet("q", "_MouseClick1")
Func _MouseClick1()
MouseClick('Left',150,295,1,0)
EndFunc


Простите, система почему-то запрещает мне размещать данные в виде "Код:AutoIt"
Но этого оказалось недостаточно.
Необходимо узнать:
1. Какая функция/команда позволит держать зажатой ЛКМ в определенной позиции курсора пока нажата кнопка клавиатуры?
2. Как завязать комбинацию из двух клавиш на клик в определенной позиции курсора?
Спасибо.
 
Верх