Jump to content

view highlight when found color


joeyone
 Share

Recommended Posts

i have a code that when executed it searches a area on the screen for a specific color.

And when it finds the right colorcode i want to highlight the X and Y position of the color with something.

does anyone have an idea how i can make a highlighter? just a very clear visible color or something that shows up when it finds the right color?

thanks in advance

Link to comment
Share on other sites

Use this code from Jex you can copy and locking the pixel :D, is that you search?

#include <GUIConstants.au3>
#include <Color.au3>
#include <Array.au3>
#Include <Misc.au3>

$Form1 = GUICreate("FLEXY", 321, 148, 340, 243, -1, BitOR($WS_EX_TOPMOST, $WS_EX_WINDOWEDGE))
$Label1 = GUICtrlCreateLabel("Mouse Coordinates :", 16, 12, 101, 17)
$Label2 = GUICtrlCreateLabel("Hex Color :", 16, 36, 56, 17)
$Label3 = GUICtrlCreateLabel("Decimal Color :", 16, 60, 75, 17)
$Label4 = GUICtrlCreateLabel("RGB Color :", 16, 84, 60, 17)
$Label5 = GUICtrlCreateLabel("", 216, 34, 42, 40)
$Input1 = GUICtrlCreateInput("X", 120, 8, 65, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))
$Input2 = GUICtrlCreateInput("Y", 192, 8, 65, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))
$Input3 = GUICtrlCreateInput("", 120, 32, 89, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))
$Input4 = GUICtrlCreateInput("", 120, 56, 89, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))
$Input5 = GUICtrlCreateInput("Red", 120, 80, 41, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))
$Input6 = GUICtrlCreateInput("Green", 168, 80, 41, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))
$Input7 = GUICtrlCreateInput("Blue", 216, 80, 41, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))
$Button1 = GUICtrlCreateButton("Copy", 264, 6, 41, 24, 0)
$Button2 = GUICtrlCreateButton("Copy", 264, 30, 41, 24, 0)
$Button3 = GUICtrlCreateButton("Copy", 264, 54, 41, 24, 0)
$Button4 = GUICtrlCreateButton("Copy", 264, 78, 41, 24, 0)
$Button5 = GUICtrlCreateButton("Copy All", 128, 112, 57, 25, 0)
$Button6 = GUICtrlCreateButton("Freeze", 16, 112, 57, 25, 0)
$Button7 = GUICtrlCreateButton("Hotkeys", 72, 112, 57, 25, 0)
$Button8 = GUICtrlCreateButton("Pixel Search", 184, 112, 81, 25, 0)
$Button9 = GUICtrlCreateButton("Exit", 264, 112, 41, 25, 0)

$2Form1 = GUICreate("FLEXY - Pixel Search", 321, 308, 340, 423, -1, BitOR($WS_EX_TOPMOST, $WS_EX_WINDOWEDGE))
$2Label1 = GUICtrlCreateLabel("First Coordinate :", 16, 24, 83, 17)
$2Label2 = GUICtrlCreateLabel("Second Coordinate :", 16, 48, 101, 17)
$2Input1 = GUICtrlCreateInput("X", 128, 18, 65, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL))
$2Input2 = GUICtrlCreateInput("Y", 200, 18, 65, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL))
$2Input3 = GUICtrlCreateInput("X", 128, 42, 65, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL))
$2Input4 = GUICtrlCreateInput("Y", 200, 42, 65, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL))
$2Label3 = GUICtrlCreateLabel("Hex Color - Variation :", 16, 72, 106, 17)
$2Input5 = GUICtrlCreateInput("", 128, 66, 97, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL))
$2Input6 = GUICtrlCreateInput("0", 232, 66, 33, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL))
$2Button1 = GUICtrlCreateButton("C", 272, 18, 25, 21, 0)
GUICtrlSetTip(-1, "Copy here main window coordinates.")
$2Button2 = GUICtrlCreateButton("C", 272, 42, 25, 21, 0)
GUICtrlSetTip(-1, "Copy here main window coordinates.")
$2Button3 = GUICtrlCreateButton("C", 272, 66, 25, 21, 0)
GUICtrlSetTip(-1, "Copy here main window hex color.")
$2Button4 = GUICtrlCreateButton("Search 1", 16, 96, 65, 25, 0)
GUICtrlSetTip(-1, "Search and if found only show result.")
$2Button5 = GUICtrlCreateButton("Search 2", 88, 96, 65, 25, 0)
GUICtrlSetTip(-1, "Search and if found move mouse there.")
$2Button6 = GUICtrlCreateButton("Search 3", 160, 96, 65, 25, 0)
GUICtrlSetTip(-1, "Search and if found click there.")
$2Button7 = GUICtrlCreateButton("Search 4", 232, 96, 65, 25, 0)
GUICtrlSetTip(-1, "Search and if found click there and move mouse preceding position.")
$2Group1 = GUICtrlCreateGroup("Repeat search ?", 16, 168, 281, 41)
$2Radio2 = GUICtrlCreateRadio("No", 25, 185, 41, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetTip(-1, "Normal search.")
$2Radio1 = GUICtrlCreateRadio("Yes", 67, 185, 41, 17)
GUICtrlSetTip(-1, "Search until press esc button.")
$2Radio8 = GUICtrlCreateRadio("Loop until error", 112, 185, 89, 17)
GUICtrlSetTip(-1, "Search until not find.")
$2Radio9 = GUICtrlCreateRadio("Loop until find", 204, 185, 89, 17)
GUICtrlSetTip(-1, "Search until find.")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$2Group2 = GUICtrlCreateGroup("Search where ?", 16, 210, 281, 41)
$2Radio3 = GUICtrlCreateRadio("Fullscreen search", 121, 227, 105, 17)
GUICtrlSetTip(-1, "Search in fullscreen.")
$2Radio4 = GUICtrlCreateRadio("Region search", 25, 227, 89, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetTip(-1, "Search in your coordinates.")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$2Group3 = GUICtrlCreateGroup("Click which button ?", 16, 252, 281, 41)
$2Radio5 = GUICtrlCreateRadio("Left button", 25, 269, 73, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetTip(-1, "For Search 3 and 4 methods using left mouse click.")
$2Radio6 = GUICtrlCreateRadio("Left button double", 183, 269, 105, 17)
GUICtrlSetTip(-1, "For Search 3 and 4 methods using double left mouse click.")
$2Radio7 = GUICtrlCreateRadio("Right Button", 100, 269, 81, 17)
GUICtrlSetTip(-1, "For Search 3 and 4 methods using right mouse click.")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$2Label4 = GUICtrlCreateLabel("Search Result ( Coordinate ) :", 16, 136, 143, 17)
$2Input7 = GUICtrlCreateInput("X", 160, 132, 65, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL))
$2Input8 = GUICtrlCreateInput("Y", 232, 132, 65, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL))

Global $pos, $colordec, $colorrgb, $colorhex, $position, $mousex, $mousey, $boxx, $boxy, $boxhex, $search, $search1x, $search1y, $search2x, $search2y, $searchcolor, $searchshade, $searcharray
Global $st1, $st2, $st3, $st4, $colorred, $colorgreen, $colorblue, $pause, $error, $s
Global Const $width = @DesktopWidth
Global Const $height = @DesktopHeight

HotKeySet("{PAUSE}", "pause")
HotKeySet("^!q", "copy1")
HotKeySet("^!w", "copy2")
HotKeySet("^!e", "copy3")
HotKeySet("^!r", "copy4")
HotKeySet("^!t", "copy5")
$key = "09";TAB key

GUISetState(@SW_SHOW, $Form1)

While 1
    $msg = GUIGetMsg(1)
    If $pause = 0 Then
        start()
    EndIf
    Select
        Case $msg[0] = $Button1
            copy1()
        Case $msg[0] = $Button2
            copy2()
        Case $msg[0] = $Button3
            copy3()
        Case $msg[0] = $Button4
            copy4()
        Case $msg[0] = $Button5
            copy5()
        Case $msg[0] = $Button6
            If $pause = 0 Then
                $pause = 1
            Else
                $pause = 0
            EndIf
        Case $msg[0] = $Button7
            MsgBox(0, "Hotkeys", "Pause/Break = Freeze or Unfreeze" & @CRLF & "Ctrl + Alt + Q = Copy Mouse Coordinates " & @CRLF & "Ctrl + Alt + W = Copy Hex Color" & @CRLF & "Ctrl + Alt + E = Copy Decimal Color" & @CRLF & "Ctrl + Alt + R = Copy RGB Color" & @CRLF & "Ctrl + Alt + T = Copy All Datas" & @CRLF & "TAB = Stop Pixel Search Repeat")
        Case $msg[0] = $Button8
            GUISetState(@SW_SHOW, $2Form1)
        Case $msg[0] = $Button9
            Exit
        Case $msg[0] = $2Button1
            $boxx = GUICtrlRead($Input1)
            GUICtrlSetData($2Input1, $boxx)
            $boxy = GUICtrlRead($Input2)
            GUICtrlSetData($2Input2, $boxy)
        Case $msg[0] = $2Button2
            $boxx = GUICtrlRead($Input1)
            GUICtrlSetData($2Input3, $boxx)
            $boxy = GUICtrlRead($Input2)
            GUICtrlSetData($2Input4, $boxy)
        Case $msg[0] = $2Button3
            $boxhex = GUICtrlRead($Input3)
            GUICtrlSetData($2Input5, $boxhex)
        Case $msg[0] = $2Button4
            key1()
        Case $msg[0] = $2Button5
            key2()
        Case $msg[0] = $2Button6
            key3()
        Case $msg[0] = $2Button7
            key4()
        Case $msg[0] = $GUI_EVENT_CLOSE
            If $msg[1] = $Form1 Then Exit
            If $msg[1] = $2Form1 Then GUISetState(@SW_HIDE, $2Form1)
    EndSelect
WEnd

Func start()
    Sleep(50)
    test1()
    test2()
    GUICtrlSetData($Input1, $mousex)
    GUICtrlSetData($Input2, $mousey)
    GUICtrlSetData($Input3, $colorhex)
    GUICtrlSetData($Input4, $colordec)
    GUICtrlSetData($Input5, $colorred)
    GUICtrlSetData($Input6, $colorgreen)
    GUICtrlSetData($Input7, $colorblue)
    GUICtrlSetBkColor($Label5, $colorhex)
EndFunc  ;==>start

Func test1()
    $pos = MouseGetPos()
    $colordec = PixelGetColor($pos[0], $pos[1])
    $colorhex = "0x" & Hex($colordec, 6)
    $colorred = _ColorGetRed($colordec)
    $colorgreen = _ColorGetGreen($colordec)
    $colorblue = _ColorGetBlue($colordec)
    $position = $pos[0] & ", " & $pos[1]
    $mousex = $pos[0]
    $mousey = $pos[1]
EndFunc  ;==>test1

Func test2()
    $st1 = StringFormat($pos[0] & ", " & $pos[1])
    $st2 = StringFormat($colorhex)
    $st3 = StringFormat($colordec)
    $st4 = StringFormat($colorred & " " & $colorgreen & " " & $colorblue)
EndFunc  ;==>test2

Func test3()
    $search1x = GUICtrlRead($2Input1)
    $search1y = GUICtrlRead($2Input2)
    $search2x = GUICtrlRead($2Input3)
    $search2y = GUICtrlRead($2Input4)
    $searchcolor = GUICtrlRead($2Input5)
    $searchshade = GUICtrlRead($2Input6)
EndFunc  ;==>test3

Func key1()
    $s = 1
    searchnow()
EndFunc  ;==>key1

Func key2()
    $s = 2
    searchnow()
EndFunc  ;==>key2

Func key3()
    $s = 3
    searchnow()
EndFunc  ;==>key3

Func key4()
    $s = 4
    searchnow()
EndFunc  ;==>key4

;test
Func kkey1()
    Sleep(2500)
    $s = 1
    searchnow()
EndFunc  ;==>kkey1

Func kkey2()
    Sleep(2500)
    $s = 2
    searchnow()
EndFunc  ;==>kkey2

Func kkey3()
    Sleep(2500)
    $s = 3
    searchnow()
EndFunc  ;==>kkey3

Func kkey4()
    Sleep(2500)
    $s = 4
    searchnow()
EndFunc  ;==>kkey4

Func searchnow()
    If GUICtrlRead($2Radio2) = $GUI_CHECKED Then
        searchnow2()
    Else
        If GUICtrlRead($2Radio1) = $GUI_CHECKED Then
            While 1
                searchnow2()
                If _IsPressed($key) Then ExitLoop
            WEnd
        Else
            If GUICtrlRead($2Radio8) = $GUI_CHECKED Then
                While 1
                    searchnow2()
                    If $error = 1 Then ExitLoop
                    If _IsPressed($key) Then ExitLoop
                WEnd
            Else
                While 1
                    searchnow2()
                    If $error = 0 Then ExitLoop
                    If _IsPressed($key) Then ExitLoop
                WEnd
            EndIf
        EndIf
    EndIf
EndFunc  ;==>searchnow

Func searchnow2()
    If $s = 1 Then
        search1()
    ElseIf $s = 2 Then
        search2()
    ElseIf $s = 3 Then
        search3()
    ElseIf $s = 4 Then
        search4()
    EndIf
EndFunc  ;==>searchnow2

Func search1()
    searchpixel()
    If $error = 0 Then
        $searcharray = $search
        GUICtrlSetData($2Input7, $searcharray[0])
        GUICtrlSetData($2Input8, $searcharray[1])
    EndIf
EndFunc  ;==>search1

Func search2()
    searchpixel()
    If $error = 0 Then
        $searcharray = $search
        MouseMove($searcharray[0], $searcharray[1], 0)
        GUICtrlSetData($2Input7, $searcharray[0])
        GUICtrlSetData($2Input8, $searcharray[1])
    EndIf
EndFunc  ;==>search2

Func search3()
    searchpixel()
    If $error = 0 Then
        $searcharray = $search
        buttons()
        GUICtrlSetData($2Input7, $searcharray[0])
        GUICtrlSetData($2Input8, $searcharray[1])
    EndIf
EndFunc  ;==>search3

Func search4()
    searchpixel()
    If $error = 0 Then
        $searcharray = $search
        buttons()
        MouseMove($pos[0], $pos[1], 0)
        GUICtrlSetData($2Input7, $searcharray[0])
        GUICtrlSetData($2Input8, $searcharray[1])
    EndIf
EndFunc  ;==>search4

Func searchpixel()
    Sleep(10)
    $error = 0
    test3()
    If $searchshade > 255 Then
        $error = 1
        MsgBox(0, "", "Variation need lower than 255", 5)
    Else
        If GUICtrlRead($2Radio4) = $GUI_CHECKED Then
            $search = PixelSearch($search1x, $search1y, $search2x, $search2y, $searchcolor, $searchshade)
            If @error Then $error = 1
        Else
            $searchcolor = GUICtrlRead($2Input5)
            $searchshade = GUICtrlRead($2Input6)
            $search = PixelSearch(0, 0, $width, $height, $searchcolor, $searchshade)
            If @error Then $error = 1
        EndIf
    EndIf
    If $error = 1 Then
        GUICtrlSetData($2Input7, "Not found!")
        GUICtrlSetData($2Input8, "Not found!")
    EndIf
EndFunc  ;==>searchpixel

Func buttons()
    If GUICtrlRead($2Radio5) = $GUI_CHECKED Then
        MouseClick("left", $searcharray[0], $searcharray[1], 1, 0)
    Else
        If GUICtrlRead($2Radio6) = $GUI_CHECKED Then
            MouseClick("left", $searcharray[0], $searcharray[1], 2, 0)
        Else
            MouseClick("right", $searcharray[0], $searcharray[1], 1, 0)
        EndIf
    EndIf
EndFunc  ;==>buttons

Func pause()
    If $pause = 0 Then
        $pause = 1
    Else
        $pause = 0
    EndIf
EndFunc  ;==>pause

Func copy1()
    ClipPut($st1)
EndFunc  ;==>copy1

Func copy2()
    ClipPut($st2)
EndFunc  ;==>copy2

Func copy3()
    ClipPut($st3)
EndFunc  ;==>copy3

Func copy4()
    ClipPut($st4)
EndFunc  ;==>copy4

Func copy5()
    ClipPut($st1 & " " & $st2 & " " & $st3 & " " & $st4)
EndFunc  ;==>copy5
Link to comment
Share on other sites

i think i was looking for something more smaller to just put in my script

just a simple box that appears when the program finds the specific color on the same XY as the color

A box that highlights the found color

o = color

' = nothing

------------------

I''''''''''''''''''''''''''''I

I''''''''''''o''''''''''''''I

I''''''''''''''''''''''''''''I

I___________I

Edited by joeyone
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...