Advertisement
Guest User

Untitled

a guest
Sep 9th, 2019
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 4.76 KB | None | 0 0
  1. #RequireAdmin
  2. #include <WinAPI.au3>
  3. #include <Color.au3>
  4. Func GetColor($GetTitle, $X, $Y, $color, $Return = 0, $Pattern = 1, $shade = 5)
  5.     Local $handle
  6.     Local $hDC
  7.     Local $iColor
  8.     Local $sColor
  9.     Local $RGB, $RGB1 ;เน€เธเน‡เธšเธ„เนˆเธฒเธชเธต RGB เนเธขเธข Array
  10.     Local $R1, $G1, $B1, $R2, $G2, $B2 ;เน€เธเน‡เธขเธ„เนˆเธฒเธชเธตเนเธšเธš DEC RGB
  11.     If $Return > 2 Or $Return < 0 Then
  12.         Return "Return False"
  13.     EndIf
  14.     For $XX = $X - $Pattern To $X + $Pattern
  15.         For $YY = $Y - $Pattern To $Y + $Pattern
  16.             $handle = WinGetHandle($GetTitle)
  17.             $hDC = _WinAPI_GetWindowDC($handle)
  18.             $iColor = DllCall("gdi32.dll", "int", "GetPixel", "int", $hDC, "int", $XX, "int", $YY)
  19.             $iColor1 = DllCall("gdi32.dll", "int", "GetPixel", "int", $hDC, "int", $X, "int", $Y)
  20.             $sColor = Hex($iColor[0], 6)
  21.             $sColor1 = Hex($iColor1[0], 6)
  22.             $rsColor = Hex("0x" & StringRight($sColor, 2) & StringMid($sColor, 3, 2) & StringLeft($sColor, 2), 6)
  23.             $rsColor1 = Hex("0x" & StringRight($sColor1, 2) & StringMid($sColor1, 3, 2) & StringLeft($sColor1, 2), 6)
  24.             $RGB = _ColorGetRGB("0x" & $rsColor)
  25.             $RGB1 = _ColorGetRGB("0x" & $rsColor)
  26.             If $color = 0 Then Return "0x" & $rsColor
  27.  
  28.             If $color = "0x" & $rsColor1 Then
  29.                 If $Return = 0 Then Return True
  30.                 If $Return = 1 Then Return "0x" & $rsColor1
  31.                 If $Return = 2 Then Return StringSplit($X & "/" & $Y, "/", 6)
  32.             ElseIf $shade > 0 Then ;เธซเธฒเนเธšเธšเธ„เนˆเธฒShade+-
  33.                 For $R = 0 To $shade
  34.                     $Endfor = 0
  35.                     $R1 = $RGB[0] + $R
  36.                     $R2 = $RGB1[0] - $R
  37.                     For $G = 0 To $shade
  38.                         $G1 = $RGB[1] + $G
  39.                         $G2 = $RGB1[1] - $G
  40.                         For $B = 0 To $shade
  41.                             $B1 = $RGB[2] + $B
  42.                             $B2 = $RGB1[2] - $B
  43.                             $RGB2 = "0x" & Hex($R1, 2) & Hex($G1, 2) & Hex($B1, 2)
  44.                             $RGB3 = "0x" & Hex($R2, 2) & Hex($G2, 2) & Hex($B2, 2)
  45.                             If $color = $RGB2 Then
  46.                                 If $Return = 0 Then Return True
  47.                                 If $Return = 1 Then Return $RGB2
  48.                                 If $Return = 2 Then Return StringSplit($XX & "/" & $YY, "/", 6)
  49.                             ElseIf $color = $RGB3 Then
  50.                                 If $Return = 0 Then Return True
  51.                                 If $Return = 1 Then Return $RGB3
  52.                                 If $Return = 2 Then Return StringSplit($XX & "/" & $YY, "/", 6)
  53.                             EndIf
  54.                         Next
  55.                     Next
  56.                 Next
  57.             EndIf
  58.             _WinAPI_ReleaseDC($handle, $hDC)
  59.         Next
  60.     Next
  61.     If $Return = 2 Then Return StringSplit(0 & "/" & 0, "/", 6)
  62.     If $Return = 0 Or 1 Then Return False
  63. EndFunc   ;==>GetColor
  64.  
  65. Func Searchcolor($GetTitle, $X, $Y, $X3, $Y3, $color, $Return = 0, $shade = 5)
  66.     Local $handle
  67.     Local $hDC
  68.     Local $iColor
  69.     Local $sColor
  70.     Local $X1 = $X
  71.     Local $Y1 = $Y
  72.     Local $X2 = $X3
  73.     Local $Y2 = $Y3
  74.     Local $Return1 = $Return
  75.     Local $shade1 = $shade
  76.     Local $Wingettitle = $GetTitle
  77.     Local $RGB, $RGB1
  78.     Local $R1, $G1, $B1, $R2, $G2, $B2
  79.     If $Return > 2 Or $Return < 0 Then
  80.         Return "Return False"
  81.     EndIf
  82.     For $XX = $X1 To $X2
  83.         For $YY = $Y1 To $Y2
  84.             $handle = WinGetHandle($Wingettitle)
  85.             $hDC = _WinAPI_GetWindowDC($handle)
  86.             $iColor = DllCall("gdi32.dll", "int", "GetPixel", "int", $hDC, "int", $XX, "int", $YY)
  87.             $sColor = Hex($iColor[0], 6)
  88.             $rsColor = Hex("0x" & StringRight($sColor, 2) & StringMid($sColor, 3, 2) & StringLeft($sColor, 2), 6)
  89.             $RGB = _ColorGetRGB("0x" & $rsColor)
  90.             $RGB1 = _ColorGetRGB("0x" & $rsColor)
  91.             If $color = 0 Then Return "0x" & $rsColor
  92.  
  93.             If $color = "0x" & $rsColor Then
  94.                 If $Return1 = 0 Then Return True
  95.                 If $Return1 = 1 Then Return "0x" & $rsColor
  96.                 If $Return1 = 2 Then Return "เธ„เนˆเธฒเธ›เธเธ•เธด"
  97.                 If $Return1 = 3 Then Return StringSplit($XX & "/" & $YY, "/", 6)
  98.             ElseIf $shade > 0 Then
  99.                 For $R = 0 To $shade1
  100.                     $Endfor = 0
  101.                     $R1 = $RGB[0] + $R
  102.                     $R2 = $RGB1[0] - $R
  103.                     For $G = 0 To $shade1
  104.                         $G1 = $RGB[1] + $G
  105.                         $G2 = $RGB1[1] - $G
  106.                         For $B = 0 To $shade1
  107.                             $B1 = $RGB[2] + $B
  108.                             $B2 = $RGB1[2] - $B
  109.                             $RGB2 = "0x" & Hex($R1, 2) & Hex($G1, 2) & Hex($B1, 2)
  110.                             $RGB3 = "0x" & Hex($R2, 2) & Hex($G2, 2) & Hex($B2, 2)
  111. ;~                              Addmsg($RGB2)
  112.                             If $color = $RGB2 Then
  113.                                 If $Return1 = 0 Then Return True
  114.                                 If $Return1 = 1 Then Return $RGB2
  115.                                 If $Return1 = 2 Then Return StringSplit($XX & "/" & $YY, "/", 6)
  116.                             ElseIf $color = $RGB3 Then
  117.                                 If $Return1 = 0 Then Return True
  118.                                 If $Return1 = 1 Then Return $RGB3
  119.                                 If $Return1 = 2 Then Return StringSplit($XX & "/" & $YY, "/", 6)
  120.                             EndIf
  121.                         Next
  122.                     Next
  123.                 Next
  124.             EndIf
  125.             _WinAPI_ReleaseDC($handle, $hDC)
  126.         Next
  127.     Next
  128.     If $Return1 = 2 Then Return StringSplit(0 & "/" & 0, "/", 6)
  129.     If $Return1 = 0 Or 1 Then Return False
  130. EndFunc   ;==>Searchcolor
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement