PDA

Показать полную графическую версию : Цвета , авто-кликер.


Страниц : [1] 2

wnc
19-05-2012, 20:48
В заданных мною двух точках меняются цвета .
Как сделать что-бы если 2 этих цвета true, мышка кликала на другую заданную мною точку? А если false то на следующую заданную мною точку.

ferget
20-05-2012, 00:50
подробнее опишите, а то не понятно вот это

Как сделать что-бы если 2 этих цвета true, мышка кликала на другую заданную мною точку? А если false то на следующую заданную мною точку. »
другая точка, следующая точка и две заданных?

wnc
20-05-2012, 01:07
Да , остальные я думаю уже пойму как написать ..

Если 2 цвета совпадают с заданным мною цветом, то клацает в заданную мною точку на экране.
Если 1 из цветов не совпадает то мышка уже клацает на 2ю заданную мною точку.

ferget
20-05-2012, 01:48
примерно так


If $var = цвет AND $var1=цвет Then
MouseClick("left", x, y, 1)
Else
MouseClick("left", x, y, 1)
EndIf

wnc
20-05-2012, 02:38
Вот я думаю так будет понятнее:
http://s54.radikal.ru/i144/1205/34/31abf88ce576.jpg
Если два цвета зелёных то MouseClick срабатывает на указанные мною координаты.
Если 1 цвет не совпадает то уже на другую .

ferget
20-05-2012, 03:25
так вроде приведенный код подходит

задаете точки

$var = PixelGetColor( x , y)
$var1 = PixelGetColor( x , y)


если оба равны заданному цвету, AND - срабатывает если верны оба варианта

или можно точнее расписать

If $var = цвет AND $var1=цвет Then
MouseClick("left", x, y, 1)
Elseif $var = цвет OR $var1=цвет Then
MouseClick("left", x, y, 1)
EndIf

wnc
20-05-2012, 11:44
Что-то не работает код.

При наведение на заданный мною цвет оно идёт к заданной мною точке и кликает.
А мне нужно что-бы оно автоматически проверяла 2 цвета , а потом только если они оба совпадают шли к заданной мною точке.

HotKeySet("{ESC}", "ExitPro")
HotKeySet("{F1}", "Terminate")

While 1
MsgBox(64, "Запуск", "Программа запущена")
Sleep(90000)
WEnd

Func Terminate()
While 1
$aPos = MouseGetPos()
$var = PixelGetColor( $aPos[0] , $aPos[1] )
$var1 = PixelGetColor( $aPos[0] , $aPos[1] )
If $var = 0x23B14D AND $var1= 0x23B14D Then
MouseClick("left", 866, 686, 1)
Elseif $var = 0x23B14D OR $var1= 0x23B14D Then
MouseClick("left", 732, 692, 1)
EndIf
WEnd
EndFunc

Func ExitPro()

MsgBox(64, "Программа выключена", "Успешно выполнено")
Exit 0
EndFunc

А если не совпадают , шли к другой.

ferget
20-05-2012, 18:29
вот тут

$var = PixelGetColor( $aPos[0] , $aPos[1] )
$var1 = PixelGetColor( $aPos[0] , $aPos[1] )

в $var и $var1 попадает одно и тоже число, и поэтому срабатывает условие
если точки заранее известны, то их координаты нужно записать

wnc
21-05-2012, 08:23
Все точки заранее известны .

ferget
21-05-2012, 08:27
Все точки заранее известны . »
тогда задавайте каждую



$var = PixelGetColor( x, y )

wnc
21-05-2012, 09:52
Да всё правильно , только проблема в том. Что оно кликает постоянно, а мне нужно что-бы оно постоянно только проверяло.

wnc
21-05-2012, 16:23
Всё , пока проблем нет!)

wnc
21-05-2012, 16:47
HotKeySet("{ESC}", "ExitPro")
HotKeySet("{F1}", "Terminate")

While 1
MsgBox(64, "Программу запущена", "Успех")
Sleep(90000)
WEnd

Func Terminate()
MsgBox(64, "Hi", "Жмиии!")
While 1
$aPos = MouseGetPos()
;Точки проверки
$var = PixelGetColor( 1097, 423 )
$var1 = PixelGetColor( 1181, 415 )

If $var = 0x8E2727 AND $var1= 0x335E25 Then
MouseClick("left", 1149, 891, 1)

Elseif $var = 0x8E2727 OR $var1= 0x335E25 Then
MouseClick("left", 786, 908, 1)
EndIf
WEnd
EndFunc

Func ExitPro()
MsgBox(64, "Программа выключена", "Успешно выполнено")
Exit 0
EndFunc

Если совпадает первый цвет но не совпадает второй , то MouseClick("left", 1149, 891, 1)срабатывает.
Если не совпадает первый цвет то MouseClick("left", 1149, 891, 1) не срабатывает.
Если совпадает и первый , и второй цвет то MouseClick("left", 786, 908, 1) срабатывает.

Вопрос: почему если совпадает первый цвет но не совпадает второй то MouseClick("left", 1149, 891, 1) срабатывает, а если не совпадает первый то MouseClick("left", 1149, 891, 1) не срабатывает.
Как решить эту проблему?

wnc
23-05-2012, 01:02
Всё , пофиксил .

Как сделать кнопки ?

ferget
23-05-2012, 01:49
Как сделать кнопки ? »
уточните вопрос

wnc
23-05-2012, 02:51
Графические кнопки вызывающие функционал, возможно-ли это?

ferget
23-05-2012, 03:11
можно, вот пример


#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>

#NoTrayIcon

Local $Button1, $msg, $Gui
$Gui=GUICreate("Test Button")

Opt("GUICoordMode", 2)
$Button1 = GUICtrlCreateButton("Test", 10, 20, 120)
GUICtrlSetBkColor(-1, 0x0)
GUICtrlSetColor(-1, 0xFFFFFF)

GUISetState()

While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $Button1
OKPressed()
EndSwitch
WEnd

Func OKPressed()
MsgBox(4096,"", "Ok pressed")
EndFunc

wnc
23-05-2012, 03:24
А как сделать поиск цвета по части экрана , не знаю как правильно сформулировать но думаю выразился более менее понятно ))
Вот из этого кода.
HotKeySet("{ESC}", "ExitPro")
HotKeySet("{F1}", "Terminate")

While 1
MsgBox(64, "Программу запущена", "Успех")
Sleep(90000)
WEnd

Func Terminate()
MsgBox(64, "Включено", "ее!")
While 1
$aPos = MouseGetPos()
;Точки проверки
$var = PixelGetColor( 1097, 423 )
$var1 = PixelGetColor( 1181, 415 )
;x y

If $var = 0x8E2727 AND $var1= 0x335E25 Then
MouseClick("left", 1149, 891, 1)

Elseif $var = 0x8E2727 Or $var1= 0x335E25 Then
MouseClick("left", 786, 908, 1)
EndIf
WEnd
EndFunc

Func ExitPro()
MsgBox(64, "Программа выключена", "Успешно выполнено")

Exit 0
EndFunc

Сделайте пожалуйста код на 2кнопки , а то у меня не получается написать вторую.. А так я сразу пойму )
Я делаю , а оно получается так что вторая не работает..

ferget
23-05-2012, 04:03
две кнопки



Local $Button1, $Button2, $msg, $Gui
.............................................................
Opt("GUICoordMode", 2)
$Button1 = GUICtrlCreateButton("Test", 10, 20, 120)
$Button2 = GUICtrlCreateButton("кнопка", -1, 0)
GUISetState()

While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $Button1
;что-то делаем
Case $Button_2
;что-то делаем
EndSwitch
WEnd


а для поиска по части экрана PixelSearch


PixelSearch( 0, 0, 20, 300, 0xE0E1E4 )
If Not @error Then
MouseClick("left", 539, 47, 1)
EndIf

wnc
23-05-2012, 04:05
PixelSearche это мне указать не 2 точки , а 4 да?




© OSzone.net 2001-2012