-
AutoIt
(
http://forum.oszone.net/forumdisplay.php?f=103)
Помогите сделать авто-кликер
Мне нужно сделать программу которая при наведении на определённый цвет , будет срабатывать mouse1.
|
Простите я случайно перепутал , перенесите пожалуйста .
|
вот простейший вариант
Код:
$i = 0
While $i <= 10
$aPos = MouseGetPos()
$var = PixelGetColor( $aPos[0] , $aPos[1] )
If $var = 15791353 Then
MouseClick("Left")
EndIf
WEnd
|
Где задан цвет ? Ну к примеру мне нужен этот RGB "000000255"
|
цвет задается здесь
Код:
If $var = 15791353 Then
|
А как мне вычислить цвет на который оно будет кликать ? Есть какая-то утилита ?
|
можно использовать вот такой скрипт
Код:
#include <Misc.au3>
While 1
If _IsPressed('01') Then
$aPos = MouseGetPos()
$var = PixelGetColor( $aPos[0] , $aPos[1] )
MsgBox(4096,"Цвет", 'Десятичный цвет: '&$var)
EndIf
Sleep(10)
WEnd
кликнуть в нужное место
|
А как сделать чтобы если я выхожу к примеру за територию цвета 0x212121 , срабатывался MouseClick("Left").
|
Предположим что это flash игра , и нужно собрать все цели , цели разного цвета , но фон один. Вот нужно что-бы я просто водил мышкой по целям , а при наведении на другой цвет кроме 0x212121 срабатывала MouseClick("Left").
|
проще всего
Код:
If $var <> нужный цвет Then
тут кликаем
только аккуратно, продумайте выход из скрипта
|
Скиньте пожалуйста код целиком. ))
|
Код:
HotKeySet("{ESC}", "Terminate")
While 1
$aPos = MouseGetPos()
$var = PixelGetColor( $aPos[0] , $aPos[1] )
If $var <> 15791353 Then
MouseClick("Left")
EndIf
WEnd
Func Terminate()
Exit 0
EndFunc
выход на клавишу ESC
|
Работает , но есть одна проблема оно клацает постоянно, нужно что-бы кликало 1 раз.
Оно место 1 раза , кликает 3 раза. Может можно блокировать клик на заданное количество времени после MouseClick?
Всё спасибо , сделал сам =)
|
А как в исключение добавить несколько цветов?
|
примерно так
Код:
If $var <>6 AND $var <>5 AND $var <>7 Then
|
А можно сделать что-бы оно игнорировала цвета начинающиеся на 0xC****** ?
|
можно попробовать
Код:
If $var < 0xC00000 OR $var > 0xCFFFFF Then
|
Нет, к сожалению так не получается =(
|
Цитата:
Цитата wnc
Нет, к сожалению так не получается =( »
|
значит нужно каждый задавать, лучше массивом
|
К сожалению я не разбираюсь в этом, если у вас не отнимет это много времени. Напишите пожалуйста примерно как выглядит код.
|
вот так
читать дальше »
Код:
HotKeySet("{ESC}", "Terminate")
;Сначала выбираем все нужные цвета
Dim $aArray[4]
;тут записываем каждый цвет
$aArray[0]=0xC00000
$aArray[1]=0x000000
$aArray[2]=0xFFFFFF
$aArray[3]=0xCFF555
;........................
While 1
For $element In $aArray
$aPos = MouseGetPos()
$var = PixelGetColor( $aPos[0] , $aPos[1] )
If $var = $element Then
MouseClick("Left")
EndIf
Next
WEnd
Func Terminate()
Exit 0
EndFunc
хотя лучше автоматизировать поиск цвета, этот код сам наводит мышку на нужный цвет
читать дальше »
Код:
HotKeySet("{ESC}", "Terminate")
;Сначала выбираем все нужные цвета
Dim $aArray[4]
;тут записываем каждый цвет
$aArray[0]=0xC00000
$aArray[1]=0x000000
$aArray[2]=0xFFFFFF
$aArray[3]=0xCFF555
;........................
While 1
For $element In $aArray
$coord = PixelSearch( 0, 0, 800, 600, $element );первые 4 цифры - область экрана где ищется цвет
If Not @error Then
MouseClick("Left", $coord[0] , $coord[1])
EndIf
Next
WEnd
Func Terminate()
Exit 0
EndFunc
|
$coord = PixelSearch( 0, 0, 800, 600, $element );первые 4 цифры - область экрана где ищется цвет
А там где 800, 600 - это разрешение экрана ? Или как...
|
Цитата:
Цитата wnc
А там где 800, 600 - это разрешение экрана ? Или как... »
|
это просто для примера
0,0 -это левый верхний угол экрана
800, 600 - это размер области
можно задавать все 4 цифры
|
AutoIt v3 Window Info
Показует мне Position 480,524 . Куда её вписывать от туда?
|
первые две цифры брать из Position две последние из Size
|
Хорошо, а теперь как сделать что-бы при смене любого цвета срабатывал MouseClick("Left"), и задать еще кнопки включения и выключения ?
|
А как сделать что-бы к примеру при нажатии MouseClick("Right")
Останавливался этот код:
HTML код:
HotKeySet("{ESC}", "Terminate")
While 1
$aPos = MouseGetPos()
$var = PixelGetColor( $aPos[0] , $aPos[1] )
If $var <> 0x212121 Then
MouseClick("Left")
EndIf
WEnd
Func Terminate()
Exit 0
EndFunc
И начинался этот
HTML код:
HotKeySet("{ESC}", "Terminate")
;Сначала выбираем все нужные цвета
Dim $aArray[4]
;тут записываем каждый цвет
$aArray[0]=0xC00000
$aArray[1]=0x000000
$aArray[2]=0xFFFFFF
$aArray[3]=0xCFF555
;........................
While 1
For $element In $aArray
$coord = PixelSearch( 0, 0, 800, 600, $element );первые 4 цифры - область экрана где ищется цвет
If Not @error Then
MouseClick("Left", $coord[0] , $coord[1])
EndIf
Next
WEnd
Func Terminate()
Exit 0
EndFunc
|
Всё разобрался , сделал несколько функций.
|
Время: 22:25.
© OSzone.net 2001-