梦想吧技术论坛's Archiver

似水年华 发表于 2007-4-12 01:05 PM

AutoIt简单取色器

刚开始学AUTOIT,涂鸦之作,纯属好玩,有很多BUG,有兴趣的朋友帮改改。刚学的朋友就当是一个简单的实例吧
一个简单的取色器,结果可以保存到color.ini中。

[code]
#include  <GUIConstants.au3>
#include  <Color.au3>

#Region  ###  START  Koda  GUI  section  ###  Form=
$Form1  =  GUICreate("XYColor",  169,  233,  195,  121)
$Group1  =  GUICtrlCreateGroup("当前坐标",  16,  8,  137,  57)
$Label1  =  GUICtrlCreateLabel("X  =  ",  24,  34,  23,  17)
$Label2  =  GUICtrlCreateLabel("Y  =  ",  88,  34,  23,  17)
$Input1  =  GUICtrlCreateInput("",  48,  32,  30,  21,  -1,  0)
GUICtrlSetBkColor(-1,  0xECE9D8)
GUICtrlSetState(-1,  $GUI_DISABLE)
$Input2  =  GUICtrlCreateInput("",  112,  32,  30,  21,  -1,  0)
GUICtrlSetBkColor(-1,  0xECE9D8)
GUICtrlSetState(-1,  $GUI_DISABLE)
GUICtrlCreateGroup("",  -99,  -99,  1,  1)
$Group2  =  GUICtrlCreateGroup("RGB颜色",  16,  72,  137,  121)
$Label3  =  GUICtrlCreateLabel("R:",  28,  117,  20,  15)
$Label4  =  GUICtrlCreateLabel("G:",  28,  134,  20,  15)
$Label5  =  GUICtrlCreateLabel("B:",  28,  151,  20,  15)
$Input3  =  GUICtrlCreateInput("",  56,  117,  33,  21,  -1,  0)
GUICtrlSetBkColor(-1,  0xECE9D8)
GUICtrlSetState(-1,  $GUI_DISABLE)
$Input4  =  GUICtrlCreateInput("",  56,  134,  33,  21,  -1,  0)
GUICtrlSetBkColor(-1,  0xECE9D8)
GUICtrlSetState(-1,  $GUI_DISABLE)
$Input5  =  GUICtrlCreateInput("",  56,  151,  33,  21,  -1,  0)
GUICtrlSetBkColor(-1,  0xECE9D8)
GUICtrlSetState(-1,  $GUI_DISABLE)
$Input6  =  GUICtrlCreateInput("",  106,  117,  33,  21,  -1,  0)
GUICtrlSetBkColor(-1,  0xECE9D8)
GUICtrlSetState(-1,  $GUI_DISABLE)
$Input7  =  GUICtrlCreateInput("",  106,  134,  33,  21,  -1,  0)
GUICtrlSetBkColor(-1,  0xECE9D8)
GUICtrlSetState(-1,  $GUI_DISABLE)
$Input8  =  GUICtrlCreateInput("",  106,  151,  33,  21,  -1,  0)
GUICtrlSetBkColor(-1,  0xECE9D8)
GUICtrlSetState(-1,  $GUI_DISABLE)
$Group3  =  GUICtrlCreateGroup("Dec",  51,  96,  45,  80)
GUICtrlCreateGroup("",  -99,  -99,  1,  1)
$Group4  =  GUICtrlCreateGroup("Hex",  101,  96,  45,  80)
GUICtrlCreateGroup("",  -99,  -99,  1,  1)
GUICtrlCreateGroup("",  -99,  -99,  1,  1)
$Group5  =  GUICtrlCreateGroup("  按  ALT+~  保存到文件",  16,  200,  137,  17)
GUICtrlCreateGroup("",  -99,  -99,  1,  1)
GUISetState(@SW_SHOW)
#EndRegion  ###  END  Koda  GUI  section  ###

WinSetOnTop("XYColor","当前",1)  ;;窗口置顶
HotKeySet("!`","_save")  ;;激活热键  ALT+`

While  1
$nMsg  =  GUIGetMsg()
Switch  $nMsg
    Case  $GUI_EVENT_CLOSE    ;;如果关闭窗口
    Exit
    Case  $GUI_EVENT_MOUSEMOVE  ;;如果移动鼠标
    $pos  =  MouseGetPos()      ;;得到鼠标当前坐标
    GUICtrlSetData($Input1,$pos[0])  ;;  显示X
    GUICtrlSetData($Input2,$pos[1])  ;;  显示Y
    $color  =  PixelGetColor($pos[0],$pos[1])    ;;得到当前点颜色(十进制数)
    $color  =  Hex($color,6)  ;;转换颜色值为十六进制数
    $R_color_Dec  =  _ColorGetRed($color)  ;;得到红色分量(十进制)
    $G_color_Dec  =  _ColorGetGreen($color)  ;;得到绿色分量(十进制)
    $B_color_Dec  =  _ColorGetBlue($color)  ;;得到蓝色分量(十进制)
    $R_color_Hex  =  Hex($R_color_Dec,2)  ;;转换红色分量(十六进制)
    $G_color_Hex  =  Hex($G_color_Dec,2)  ;;转换绿色分量(十六进制)
    $B_color_Hex  =  Hex($B_color_Dec,2)  ;;转换蓝色分量(十六进制)
    GUICtrlSetData($Input3,$R_color_Dec)  ;;显示各颜色分量
    GUICtrlSetData($Input4,$G_color_Dec)
    GUICtrlSetData($Input5,$B_color_Dec)
    GUICtrlSetData($Input6,$R_color_Hex)
    GUICtrlSetData($Input7,$G_color_Hex)
    GUICtrlSetData($Input8,$B_color_Hex)
EndSwitch
WEnd
Func  _save()  ;;取色结果写入文件。
$time  =  @YEAR&"-"&@MON&]&@MON&"-"&@MDAY&"    "&@HOUR&]&@HOUR&":"&@MIN&":"&@SEC  ;;$time的值为  当前    年-月-日    时:分:秒
IniWrite("color.ini",$time,"XYColor",$pos[0]&","&$pos[1]&","&"RGB="&"0x"&$R_color_Hex&$G_color_Hex&$B_color_Hex)
EndFunc
[/code]

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.