Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Помогите сделать авто-кликер (http://forum.oszone.net/showthread.php?t=234879)

wnc 17-05-2012 23:12 1917923

Помогите сделать авто-кликер
 
Мне нужно сделать программу которая при наведении на определённый цвет , будет срабатывать mouse1.

ferget 17-05-2012 23:17 1917929

вам сюда

wnc 17-05-2012 23:23 1917932

Простите я случайно перепутал , перенесите пожалуйста .

ferget 17-05-2012 23:37 1917943

вот простейший вариант

Код:

$i = 0
While $i <= 10
$aPos = MouseGetPos()
$var = PixelGetColor( $aPos[0] , $aPos[1] )
If $var = 15791353 Then
MouseClick("Left")
EndIf
WEnd


wnc 17-05-2012 23:47 1917949

Где задан цвет ? Ну к примеру мне нужен этот RGB "000000255"

ferget 18-05-2012 00:06 1917958

цвет задается здесь
Код:

If $var = 15791353 Then

wnc 18-05-2012 00:10 1917961

А в чем он задан?

ferget 18-05-2012 00:14 1917962

Десятичный цвет

wnc 18-05-2012 00:20 1917964

А как мне вычислить цвет на который оно будет кликать ? Есть какая-то утилита ?

ferget 18-05-2012 01:00 1917979

можно использовать вот такой скрипт

Код:

#include <Misc.au3>

While 1
    If _IsPressed('01') Then
                $aPos = MouseGetPos()
                $var = PixelGetColor( $aPos[0] , $aPos[1] )               
                MsgBox(4096,"Цвет", 'Десятичный цвет: '&$var)
        EndIf       
    Sleep(10)
WEnd

кликнуть в нужное место

wnc 18-05-2012 01:28 1917985

А как сделать чтобы если я выхожу к примеру за територию цвета 0x212121 , срабатывался MouseClick("Left").

ferget 18-05-2012 02:53 1917997

поясните вопрос

wnc 18-05-2012 03:12 1917998

Предположим что это flash игра , и нужно собрать все цели , цели разного цвета , но фон один. Вот нужно что-бы я просто водил мышкой по целям , а при наведении на другой цвет кроме 0x212121 срабатывала MouseClick("Left").

ferget 18-05-2012 03:24 1918000

проще всего

Код:

If $var <> нужный цвет  Then
тут кликаем

только аккуратно, продумайте выход из скрипта

wnc 18-05-2012 03:37 1918001

Скиньте пожалуйста код целиком. ))

ferget 18-05-2012 03:41 1918002

Код:

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

wnc 18-05-2012 03:46 1918003

Работает , но есть одна проблема оно клацает постоянно, нужно что-бы кликало 1 раз.

Оно место 1 раза , кликает 3 раза. Может можно блокировать клик на заданное количество времени после MouseClick?

Всё спасибо , сделал сам =)

wnc 18-05-2012 04:29 1918006

А как в исключение добавить несколько цветов?

ferget 18-05-2012 04:45 1918008

примерно так

Код:

If $var <>6  AND $var <>5 AND  $var <>7 Then

wnc 18-05-2012 04:57 1918009

А можно сделать что-бы оно игнорировала цвета начинающиеся на 0xC****** ?

ferget 18-05-2012 05:16 1918012

можно попробовать

Код:

If $var < 0xC00000  OR $var > 0xCFFFFF Then

wnc 18-05-2012 05:31 1918014

Нет, к сожалению так не получается =(

ferget 18-05-2012 05:43 1918015

Цитата:

Цитата wnc
Нет, к сожалению так не получается =( »

значит нужно каждый задавать, лучше массивом

wnc 18-05-2012 05:49 1918017

К сожалению я не разбираюсь в этом, если у вас не отнимет это много времени. Напишите пожалуйста примерно как выглядит код.

ferget 18-05-2012 06:15 1918022

вот так

читать дальше »
Код:

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


wnc 18-05-2012 06:26 1918024

$coord = PixelSearch( 0, 0, 800, 600, $element );первые 4 цифры - область экрана где ищется цвет
А там где 800, 600 - это разрешение экрана ? Или как...

ferget 18-05-2012 06:31 1918027

Цитата:

Цитата wnc
А там где 800, 600 - это разрешение экрана ? Или как... »

это просто для примера
0,0 -это левый верхний угол экрана
800, 600 - это размер области

можно задавать все 4 цифры

wnc 18-05-2012 06:39 1918029

AutoIt v3 Window Info
Показует мне Position 480,524 . Куда её вписывать от туда?

ferget 18-05-2012 06:41 1918030

первые две цифры брать из Position две последние из Size

wnc 18-05-2012 15:45 1918333

Хорошо, а теперь как сделать что-бы при смене любого цвета срабатывал MouseClick("Left"), и задать еще кнопки включения и выключения ?

wnc 19-05-2012 03:41 1918609

А как сделать что-бы к примеру при нажатии 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


wnc 19-05-2012 04:39 1918614

Всё разобрался , сделал несколько функций.


Время: 22:25.

Время: 22:25.
© OSzone.net 2001-