Что нового

Нажатие клавиш при изменении цвета пикселя

S3EK

Новичок
Сообщения
2
Репутация
0
Здравствуйте. Некоторое время назад товарищ прислал скрипт и сказал, что все легко, разберешься за пару минут.
Дело в том, что я далеко не программист.

Суть скрипта заключается в нажатии клавиши в зависимости от цвета пикселя.
Изменение цвета пикселя было сделано отдельно, а сам клик я совсем не имею представления как реализовать.

$Title = "Окно игры"
;= ^ CONTROL
'^'

With $Keys

.Add ("000d1a","{0}")
.Add ("00284d","{1}")
.Add ("003566","{2}")
.Add ("004280","{3}")
.Add ("004f99","{4}")
.Add ("005cb3","{5}")
.Add ("0069cc","{6}")
.Add ("0077e6","{7}")
.Add ("0084ff","{8}")
.Add ("1a90ff","{9}")

EndWith

While 1

$color = Hex(PixelGetColor(0, 20, $hwnd), 6)

if $color != "000000"
Send($Keys.Item($color))

;~ ConsoleWrite($color)

ConsoleWrite($Keys.Item($color))

Sleep (25)

ControlSend("[CLASS:SciTEWindow]", "", "Scintilla2", "+{F5}")

WEnd

Если цвет пикселя не является "000000" то прожимается клавиша - такова планировалась логика.
Подскажите пожалуйста. Что нужно сделать чтобы это заработало?
 

hedji

Продвинутый
Сообщения
409
Репутация
94
Зачем искать белый цвет, если потом кнопки нажимаются в зависимости от конкретного цвета?

Код:
Opt("PixelCoordMode", 2) ;устанавливаем способ отсчета координат 
$hWnd = WinGetHandle("Окно игры") ;указываем заголовок окна игры вместо "Окно игры"

If @error Then
	MsgBox(0, "", "Окно игры не найдено, скрипт будет завершен") ;если окно игры не найдено, выходим из скрипта
	Exit
EndIf

While 1

$color = Hex(PixelGetColor(0, 20, $hWnd), 6) ;проверяем цвет в указанной точке

Switch $color
	Case "000d1a" 
		Send("0") ;в зависимости от цвета нажимаем нужную кнопку
	Case "00284d"
		Send("1")
	Case "003566"
		Send("2")
	Case "004280"
		Send("3")
	Case "004f99"
		Send("4")
	Case "005cb3"
		Send("5")
	Case "0069cc"
		Send("6")
	Case "0077e6"
		Send("7")
	Case "0084ff"
		Send("8")
	Case "1a90ff"
		Send("9")
	Case Else
EndSwitch

WEnd
 
Верх