Автор Тема: [Автоматизация] определение цвета  (Прочитано 4283 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн 0xfff [?]

  • Новичок
  • *
  • Сообщений: 10
  • Репутация: 0
    • Награды
доброго времени суток.
можете дать исходник определения цвета при наведении курсора, к примеру как finder tool в windows info
заранее спасибо :)

Русское сообщество AutoIt

[Автоматизация] определение цвета
« Отправлен: Август 27, 2010, 17:50:03 »

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 8082
  • Репутация: 2314
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Автоматизация] определение цвета
« Ответ #1, Отправлен: Август 27, 2010, 18:01:50 »
Код: AutoIt [Выделить]
$nColor = PixelGetColor(MouseGetPos(0), MouseGetPos(1))
MsgBox(0, "", "0x" & Hex($nColor, 6))



Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.


«Не оказываю тех. поддержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: [Автоматизация] определение цвета
« Ответ #2, Отправлен: Август 27, 2010, 20:01:48 »
0xfff
Или так:
Код: AutoIt [Выделить]
HotKeySet("{ESC}", "MyExit") ;Esc - выход

While 1
    $nColor = PixelGetColor(MouseGetPos(0), MouseGetPos(1))
    ToolTip("0x" & Hex($nColor, 6))
    Sleep(10)
WEnd

Func MyExit()
    Exit
EndFunc   ;==>MyExit


Русское сообщество AutoIt

Re: [Автоматизация] определение цвета
« Ответ #2 Отправлен: Август 27, 2010, 20:01:48 »

Оффлайн 0xfff [?]

  • Новичок
  • *
  • Сообщений: 10

  • Автор темы
  • Репутация: 0
    • Награды
Re: [Автоматизация] определение цвета
« Ответ #3, Отправлен: Август 27, 2010, 20:28:18 »
спасибо все работает
и ещё один вопрос, как остановить поиск т.е отключить или сделать чтобы когда он работал то программа полностью нормально работала..

func _OnColor()
$color = 1
While 1
If $color = 1 Then
$nColor = PixelGetColor(MouseGetPos(0), MouseGetPos(1))
If Not @error Then
GUICtrlSetData($Input1, "0x" & Hex($nColor, 6))
EndIf
EndIf
WEnd
EndFunc

Func _ofColor()
$color = 0
EndFunc

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 8082
  • Репутация: 2314
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Автоматизация] определение цвета
« Ответ #4, Отправлен: Август 27, 2010, 20:41:59 »
Код: AutoIt [Выделить]
;On
AdlibRegister("_CheckColor", 10)

Sleep(3000)

;Off
AdlibUnRegister("_CheckColor")

Func _CheckColor()
    Local $aMousePos = MouseGetPos()
    Local $nColor = PixelGetColor($aMousePos[0], $aMousePos[1])
   
    If Not @error Then
        $nColor = _ColorConvertValue("0x" & Hex($nColor, 6), 1)
        ToolTip($nColor)
        ;GUICtrlSetData($Input1, $nColor)
    EndIf
EndFunc

; #FUNCTION# ====================================================================================================
; Name...........:  _ColorConvertValue
; Description....:  Converts string color value to hex and back.
; Syntax.........:  _ColorConvertValue($sColor, $iConvertMode=-1, $aColors_Table=0)
; Parameters.....:  $sColor          - Color name or color hex value, depending on $iConvertMode.
;                   $iConvertMode    - [Optional] If this parameter <> -1, then the function will convert hex color to string value
;                                        (default is -1 - convert from string to hex).
;                   $aDefColorsTable - [Optional] If this parameter will contain an array with colors table (default is 0),
;                                        then this colors table will be used to convert the color.
;                  
; Return values..:  Success - Returns converted color value.
;                   Failure - Returns original $sColor value (if the color can not be converted).
; Author.........:  G.Sandler (MrCreatoR)
; Modified.......:  21.06.2009
; Remarks........: 
; Related........: 
; Link...........:  Colors table used in this function: http://ilan.belhost.by/screens/colorx.shtml
; Example........:  Yes.
; ===============================================================================================================
Func _ColorConvertValue($sColor, $iConvertMode=-1, $aDefColorsTable=0)
    If UBound($aDefColorsTable, 2) = 2 Then
        For $i = 0 To UBound($aDefColorsTable)-1
            If $iConvertMode = -1 And $sColor = $aDefColorsTable[$i][0] Then
                Return "0x" & Hex($aDefColorsTable[$i][1], 6)
            ElseIf $iConvertMode <> -1 And ($sColor = $aDefColorsTable[$i][1] Or $sColor = "0x" & $aDefColorsTable[$i][1]) Then
                Return String($aDefColorsTable[$i][0])
            EndIf
        Next
    Else
        Local $aStrColors_Table = StringSplit( _
            "White|Ivory|Lightyellow|Yellow|Snow|Floralwhite|Lemonchiffon|" & _
            "Cornsilk|Seashell|Lavenderblush|Papayawhip|Blanchedalmond|Mistyrose|Bisque|" & _
            "Moccasin|Navajowhite|Peachpuff|Gold|Pink|Lightpink|Orange|" & _
            "Lightsalmon|Darkorange|Coral|Hotpink|Tomato|Orangered|Deeppink|" & _
            "Magenta|Fuchsia|Red|Oldlace|Lightgoldenrodyellow|Linen|Antiquewhite|" & _
            "Salmon|Ghostwhite|Mintcream|Whitesmoke|Beige|Wheat|Sandybrown|" & _
            "Azure|Honeydew|Aliceblue|Khaki|Lightcoral|Palegoldenrod|Violet|" & _
            "Darksalmon|Lavender|Lightcyan|Burlywood|Plum|Gainsboro|Crimson|" & _
            "Palevioletred|Goldenrod|Orchid|Thistle|Lightgrey|Tan|Chocolate|" & _
            "Peru|Indianred|Mediumvioletred|Silver|Darkkhaki|Rosybrown|Mediumorchid|" & _
            "Darkgoldenrod|Firebrick|Powderblue|Lightsteelblue|Paleturquoise|Greenyellow|Lightblue|" & _
            "Darkgray|Brown|Sienna|Yellowgreen|Darkorchid|Palegreen|Darkviolet|" & _
            "Mediumpurple|Lightgreen|Darkseagreen|Saddlebrown|Darkmagenta|Darkred|Blueviolet|" & _
            "Lightskyblue|Skyblue|Gray|Olive|Purple|Maroon|Aquamarine|" & _
            "Chartreuse|Lawngreen|Mediumslateblue|Lightslategray|Slategray|Olivedrab|Slateblue|" & _
            "Dimgray|Mediumaquamarine|Cornflowerblue|Cadetblue|Darkolivegreen|Indigo|Mediumturquoise|" & _
            "Darkslateblue|Steelblue|Royalblue|Turquoise|Mediumseagreen|Limegreen|Darkslategray|" & _
            "Seagreen|Forestgreen|Lightseagreen|Dodgerblue|Midnightblue|Cyan|Aqua|" & _
            "Springgreen|Lime|Mediumspringgreen|Darkturquoise|Deepskyblue|Darkcyan|Teal|" & _
            "Green|Darkgreen|Blue|Mediumblue|Darkblue|Navy|Black|Gray", "|")
       
        Local $aHexColors_Table = StringSplit( _
            "FFFFFF|FFFFF0|FFFFE0|FFFF00|" & _
            "FFFAFA|FFFAF0|FFFACD|FFF8DC|FFF5EE|FFF0F5|FFEFD5|" & _
            "FFEBCD|FFE4E1|FFE4C4|FFE4B5|FFDEAD|FFDAB9|FFD700|" & _
            "FFC0CB|FFB6C1|FFA500|FFA07A|FF8C00|FF7F50|FF69B4|" & _
            "FF6347|FF4500|FF1493|FF00FF|FF00FF|FF0000|FDF5E6|" & _
            "FAFAD2|FAF0E6|FAEBD7|FA8072|F8F8FF|F5FFFA|F5F5F5|" & _
            "F5F5DC|F5DEB3|F4A460|F0FFFF|F0FFF0|F0F8FF|F0E68C|" & _
            "F08080|EEE8AA|EE82EE|E9967A|E6E6FA|E0FFFF|DEB887|" & _
            "DDA0DD|DCDCDC|DC143C|DB7093|DAA520|DA70D6|D8BFD8|" & _
            "D3D3D3|D2B48C|D2691E|CD853F|CD5C5C|C71585|C0C0C0|" & _
            "BDB76B|BC8F8F|BA55D3|B8860B|B22222|B0E0E6|B0C4DE|" & _
            "AFEEEE|ADFF2F|ADD8E6|A9A9A9|A52A2A|A0522D|9ACD32|" & _
            "9932CC|98FB98|9400D3|9370DB|90EE90|8FBC8F|8B4513|" & _
            "8B008B|8B0000|8A2BE2|87CEFA|87CEEB|808080|808000|" & _
            "800080|800000|7FFFD4|7FFF00|7CFC00|7B68EE|778899|" & _
            "708090|6B8E23|6A5ACD|696969|66CDAA|6495ED|5F9EA0|" & _
            "556B2F|4B0082|48D1CC|483D8B|4682B4|4169E1|40E0D0|" & _
            "3CB371|32CD32|2F4F4F|2E8B57|228B22|20B2AA|1E90FF|" & _
            "191970|00FFFF|00FFFF|00FF7F|00FF00|00FA9A|00CED1|" & _
            "00BFFF|008B8B|008080|008000|006400|0000FF|0000CD|" & _
            "00008B|000080|000000|CCCCCC", "|")
       
        For $i = 1 To $aStrColors_Table[0]
            If $iConvertMode = -1 And $sColor = $aStrColors_Table[$i] Then
                Return "0x" & $aHexColors_Table[$i]
            ElseIf $iConvertMode <> -1 And ($sColor = $aHexColors_Table[$i] Or $sColor = "0x" & $aHexColors_Table[$i]) Then
                Return $aStrColors_Table[$i]
            EndIf
        Next
    EndIf
   
    If $sColor = -1 Or $sColor = "" Or (IsKeyword($sColor) And $sColor = Default) Then Return -1
    Return "0x" & Hex($sColor, 6)
EndFunc
 


Добавил функцию для конвертирования цвета в его строковое значение, возможно пригодится.

Русское сообщество AutoIt

Re: [Автоматизация] определение цвета
« Ответ #4 Отправлен: Август 27, 2010, 20:41:59 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
1 Ответов
4088 Просмотров
Последний ответ Февраль 08, 2010, 14:42:43
от CreatoR
7 Ответов
6611 Просмотров
Последний ответ Октябрь 02, 2011, 22:45:35
от Safron9999
4 Ответов
6289 Просмотров
Последний ответ Октябрь 23, 2011, 20:43:12
от r35p3ct
1 Ответов
2361 Просмотров
Последний ответ Февраль 17, 2012, 18:37:10
от DarWiM
0 Ответов
1530 Просмотров
Последний ответ Февраль 17, 2012, 17:39:23
от madmasles
8 Ответов
4101 Просмотров
Последний ответ Май 05, 2012, 11:22:59
от InnI
4 Ответов
3079 Просмотров
Последний ответ Апрель 12, 2013, 10:33:49
от GUIMish
9 Ответов
4912 Просмотров
Последний ответ Июль 07, 2013, 14:03:27
от Kaster
4 Ответов
602 Просмотров
Последний ответ Январь 29, 2018, 18:44:56
от cerber412
0 Ответов
193 Просмотров
Последний ответ Июнь 07, 2018, 00:42:38
от MordaRSi