绿色风's Blog
专注AutoIT(Au3)
  • 首页
  • 流●年
  • 笔●记
    • 学习随记
    • 源码示例
  • 脚●本
    • UDF(收集)
    • 工作室UDF
    • 工具●教程
    • 教程之GDI
  • 作●品
  • 下●载
  • 情怀ExcelTip
6月302017

Au3 屏幕取色器

作者:绿色风   发布:2017-6-30 13:25 Friday   分类:源码示例   阅读:14955次   评论:0条  

屏幕取色器【大部分句子有详细解释】


一个简单的东西,每一句都有注释说明,注释都快超过代码了,方便新手看。

鼠标指哪个位置就显示出该点的颜色,十进制代码,十六进制代码,红绿蓝的成分。


```#include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <Color.au3> #Include <Clipboard.au3> #Region ### START Koda GUI section ### Form=c:\documents and settings\administrator\桌面\屏幕颜色拾取.kxf $Form1 = GUICreate("屏幕取色器", 337, 260, 192, 124);创建窗口 GUISetBkColor(0x91D0F4);设置窗体的背景颜色,此处为浅蓝色 $chuang = GUICtrlCreateGraphic (8, 40, 145, 129);创建绘图控件,就是那个用来显示当前颜色的矩形 GUICtrlSetColor(-1, 0x008FF0);设置绘图控件的边框颜色 $Label1 = GUICtrlCreateLabel("当前颜色", 192, 48, 88, 23);创建静态标签 GUICtrlSetFont(-1, 14, 800, 0, "楷体_GB2312");设置字体 GUICtrlSetColor(-1, 0xFF0000);设置字体颜色 $Label2 = GUICtrlCreateLabel("十六进制", 162, 80, 52, 17);创建静态标签 $Label3 = GUICtrlCreateLabel("十进制", 255, 80, 40, 17);创建静态标签 $Input16 = GUICtrlCreateInput("", 156, 96, 65, 21);创建输入框,用来显示16进制的颜色代码 $Input10 = GUICtrlCreateInput("", 243, 96, 65, 21);创建输入框,用来显示10进制的颜色代码 $Button16 = GUICtrlCreateButton("复制", 160, 128, 57, 17);按钮,复制十六进制代码 GUICtrlSetState(-1,$GUI_DISABLE);将复制按钮变成不可用(灰色) $Button10 = GUICtrlCreateButton("复制", 247, 128, 57, 17);按钮,复制十进制代码 GUICtrlSetState(-1,$GUI_DISABLE);将复制按钮变成不可用(灰色) $Label4 = GUICtrlCreateLabel("屏幕坐标", 160, 160, 52, 20);创建静态标签 GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif");设置字体 $zuobiaox = GUICtrlCreateLabel("x", 222, 160, 50, 20) ;创建静态标签,显示x坐标,此时这里的"x"没有意义,只为方便查看,因为只要一运行,这里将会被修改 GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif");设置字体 $zuobiaoy = GUICtrlCreateLabel("y", 272, 160, 50, 20) ;创建静态标签,显示y坐标,此时这里的"y"没有意义,只为方便查看 GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif");设置字体 $Label6 = GUICtrlCreateLabel("红色", 16, 189, 28, 20);创建静态标签,显示红色两个字 GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif");设置字体 $Label7 = GUICtrlCreateLabel("绿色", 55, 189, 28, 20);创建静态标签,显示绿色两个字 GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif");设置字体 $Label8 = GUICtrlCreateLabel("蓝色", 94, 189, 28, 20);创建静态标签,显示蓝色两个字 GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif");设置字体 $hong = GUICtrlCreateInput("1", 8, 208, 33, 24);创建输入框,用来显示红色成分,这里的"1"没有意义 GUICtrlSetBkColor(-1, 0xFF0000);设置输入框的背景颜色为红色 GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif");设置字体 $lv = GUICtrlCreateInput("2", 50, 208, 33, 24);创建输入框,用来显示绿色成分,这里的"2"没有意义 GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif");设置字体 GUICtrlSetBkColor(-1, 0x008000);设置输入框的背景颜色为绿色 $lan = GUICtrlCreateInput("3", 92, 208, 33, 24);创建输入框,用来显示蓝色成分,这里的"3"没有意义 GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif");设置字体 GUICtrlSetBkColor(-1, 0x0054E3);设置输入框的背景颜色为蓝色 $Label9 = GUICtrlCreateLabel("按空格暂停捕捉颜色", 76, 8, 175, 23);创建静态标签,显示最上面的标题 GUICtrlSetFont(-1, 14, 400, 0, "黑体");设置字体 GUICtrlSetColor(-1, 0x008000);设置字体颜色 $Buttonguanyu = GUICtrlCreateButton("关于", 160, 207, 65, 33);创建按钮控件 GUICtrlSetFont(-1, 12, 800, 0, "仿宋_GB2312");设置字体 $Buttonexit = GUICtrlCreateButton("退出", 250, 207, 65, 33);创建按钮控件 GUICtrlSetFont(-1, 12, 800, 0, "仿宋_GB2312");设置字体 GUISetState(@SW_SHOW);显示窗体 #EndRegion ### END Koda GUI section ### Dim $temp,$tempx,$tempy,$pause;声明变量 HotKeySet("{SPACE}","pause");注册“空格”热键,按下空格即运行pause()函数 While 1 If $pause = 0 Then $shu=MouseGetPos();获取当前的鼠标位置,返回一个数组,$shu[0]为x坐标,$shu[1]为y坐标 $color = PixelGetColor( $shu[0] , $shu[1] );获取该坐标的颜色,返回一个十进制的颜色 If $color <> $temp Then GUICtrlSetData($Input10,$color);修改输入框的数据(显示出十进制的那个输入框,修改为当前鼠标位置的颜色编码) GUICtrlSetData($Input16, Hex($color, 6)) ;修改输入框的数据,因为$color是十进制的,所以需要用Hex函数将它变成十六进制 GUICtrlSetBkColor($chuang,$color) ;将控件的背景颜色改成鼠标位置的颜色,$chuang是那个绘图控件,即左上角那块显示颜色的那个矩形 GUICtrlSetData($hong,_ColorGetRed($Color));修改红色成分的数据,_ColorGetRed:返回指定颜色的红色成分 GUICtrlSetData($lv,_ColorGetGreen($Color));修改绿色成分的数据,同上,$color是此时鼠标所在位置的颜色 GUICtrlSetData($lan,_ColorGetBlue($Color));修改蓝色成分的数据,同上 EndIf EndIf If $shu[0]<>$tempx Then GUICtrlSetData($zuobiaox,"X:"&$shu[0]&"");实时显示鼠标所在位置的x坐标 If $shu[1]<>$tempy Then GUICtrlSetData($zuobiaoy,"Y:"&$shu[1]&"");实时显示鼠标所在位置的y坐标 $temp = $color;设置一个临时变量,用来与下一次取到的颜色进行对比,有改变才去修改控件的数据,这样可以减少CUP的使用 $tempx = $shu[0];同上,你会发现上面用了几个IF,就是用来判断是不是有数据变动 $tempy = $shu[1];同上 $nMsg = GUIGetMsg();捕获窗口消息. Switch $nMsg Case $GUI_EVENT_CLOSE;捕到关闭按钮X就退出 Exit Case $Buttonexit;点击退出按钮 Exit Case $Button10;点击复制按钮(十进制那个) _ClipBoard_SetData (GUICtrlRead($Input10));读取那个十进制的输入框后放进剪贴板里,实现复制功能 MsgBox(0,"提示","成功复制!",1);显示复制成功,延时一秒 Case $Button16;点击复制按钮(十六进制那个) _ClipBoard_SetData (GUICtrlRead($Input16));同上 MsgBox(0,"提示","成功复制!",1) Case $Buttonguanyu;点击关于按钮,下面是创建一个新的窗口,上面都是些静态标签 $sm = GUICreate("简易工作室", 218, 241, -1,-1) GUISetBkColor(0x91D0F4) $banben = GUICtrlCreateLabel("版本:1.0", 24, 32, 76, 20) GUICtrlSetFont(-1, 12, 400, 0, "仿宋_GB2312") $zuozhe = GUICtrlCreateLabel("作者:tryhi", 24, 72, 104, 23) GUICtrlSetFont(-1, 14, 400, 0, "楷体_GB2312") GUICtrlSetColor(-1, 0xFF0000) $lianxi = GUICtrlCreateLabel("QQ:601622714 い☆ve嗨♂", 32, 110, 160, 17) $shuoming = GUICtrlCreateLabel("说明:打开本程序后其它"&@crlf&"程序将无法使用"& _ "空格比如"&@crlf&"说无法打字,关闭本程序"&@crlf&"后即正常", 32, 150, 460, 50) GUISetState(@SW_SHOW) ;当一行代码太长时可以用"& _回车"来进行换行,这样看代码时比较方便,可以用"&@crlf&"来表示换行 While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE GUIDelete($sm);当点击X时删除这个"关于"窗体 ExitLoop EndSelect WEnd EndSwitch WEnd Func pause();当按下空格时将执行这个函数 If $pause = 0 Then ;用一个变量两种值来达到按下空格就暂停,再按一次就继续的功能 $pause = 1 GUICtrlSetState($Button10,$GUI_ENABLE);将“复制”那两个按钮变成可用(本来是灰色的) GUICtrlSetState($Button16,$GUI_ENABLE) Else $pause = 1 $pause = 0 GUICtrlSetState($Button10,$GUI_DISABLE);将“复制”那两个按钮变成不可用(灰色) GUICtrlSetState($Button16,$GUI_DISABLE) EndIf EndFunc ```





本文固定链接: http://www.jianyiit.com/post-270.html

blogger
该日志由 绿色风 于2017-6-30 13:25 Friday发表在 源码示例 分类下。
版权所有:《绿色风's Blog》 → 《Au3 屏幕取色器》;
除特别标注,本博客很多文章均为原创. 互联分享,尊重版权,转载请以链接形式标明本文地址;
本文标签:

扫描二维码,在手机上阅读
上一篇::旋转动画AU3
下一篇:获取打开的IE窗口的句柄与TAB标题

热门文章

相关文章

  • 有点意思的代码-画个五角星
  • Au3取巧方式从窗口列表中获取本机登陆的QQ号码
  • AU3小游戏 - 撸杆过桥
  • AU3利用shell.application获取图片的所有信息扩展信息
  • au3 gdi旋转的文本-转自德语论坛
取消回复

发表评论

亲,头像对么?

90 + 73 =

提交中,请稍候……


木有头像就木JJ啦!还木有头像吗?点这里申请属于你的个性Gravatar头像吧!


    站点统计
    • 运行时间: 20254 天
    • 日志总数: 365 篇
    • 评论数量: 7237 条
    • 微语数量: 6 条
    • 附件总量: 388 件
  • 逝出的青春

  • 打赏"绿色风"



      扫码关注本站公众号 可搜本站内容

  • Autoit V3 脚本交流群

      常驻群1:905774875
      常驻群2:40672266


  • 链接

    • AU3中文论坛
    • Excel资料库
    • 完美者博客
    • 顺网小哥'S Blog
    • 猛牛哥的博客
    • 网吧系统下载
  • 分类

    • 流●年(66)
    • 笔●记(0)
    • 脚●本(0)
    • 作品(21)
    • 学习随记(51)
    • 源码示例(68)
    • UDF(收集)(26)
    • 工作室UDF(30)
    • 工具●教程(62)
    • 教程之GDI(24)
Copyright © 2013 绿色风's Blog. Powered by emlog. Theme by 射雕天龙. 鄂ICP备2021011689号-1 鄂公网安备42102302000078号 sitemap