找回密码
 加入
搜索
查看: 9603|回复: 27

[GUI管理] 如何读取Pic控件的图片信息【已解决】

 火.. [复制链接]
发表于 2011-10-13 01:39:30 | 显示全部楼层 |阅读模式
本帖最后由 xms77 于 2011-10-17 20:58 编辑

比如怎么知道现在Pic控件显示的是什么图片(图片名称)?

没有找到更好更简洁的方法来判断Pic控件的状态,就只能在创建一个数组来保存每一个Pic控件的图片显示信息,也算是解决问题了,谢谢大家的出谋划策!
 楼主| 发表于 2011-10-13 04:52:30 | 显示全部楼层
等了三个小时沙发都没人坐,没有人知道吗?
发表于 2011-10-13 06:41:28 | 显示全部楼层
应该不可能吧,不过要看你怎么用了
发表于 2011-10-13 06:52:07 | 显示全部楼层
回复 1# xms77


    http://www.autoitx.com/thread-20990-1-1.html
认真研究下这个例子(尤其161行),稍加灵活处理也许就是你要的答案了
发表于 2011-10-13 13:59:21 | 显示全部楼层
显示在Pic控件上的图片,不一定都是来自于图片文件,因为有多种方法可以生成位图句柄。LoadImage、LoadBitmap可以从图片文件返回位图句柄,这种情况下可以取得图片文件的名称。另外一些情况,比如位图句柄返回自_ScreenCapture_Capture,这种情况下该怎么获取文件名称?
 楼主| 发表于 2011-10-14 05:23:59 | 显示全部楼层
回复 5# pusofalse
GUICtrlCreatePic("C:\windows\no.jpg", 166, 67, 17, 17)
GUICtrlSetImage($pic[$Number], "C:\windows\online.jpg")
请问P大,如上的Pic控件,我想用GUIctrlread()来获取,但是好像这个函数不支持Pic控件,请问,有什么方法来获取图片信息?
发表于 2011-10-14 05:29:00 | 显示全部楼层
回复  pusofalse
GUICtrlCreatePic("C:\windows\no.jpg", 166, 67, 17, 17)
GUICtrlSetImage($pic[$Numb ...
xms77 发表于 2011-10-14 05:23


请问这样做的意义何在呢?
 楼主| 发表于 2011-10-14 15:32:45 | 显示全部楼层
回复 7# happytc
我想让Status列的绿灯闪烁代表机器在线,机器客户端会每隔一分钟发送一个消息过来,如果2分钟之内没有收到信息,表面机器不在线,绿灯就会灭掉,就是要实现这个功能。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2011-10-14 16:03:17 | 显示全部楼层
本帖最后由 happytc 于 2011-10-14 16:06 编辑
回复  happytc
我想让Status列的绿灯闪烁代表机器在线,机器客户端会每隔一分钟发送一个消息过来,如果2分 ...
xms77 发表于 2011-10-14 15:32



   这个功能呀,怎么会要去读 取Pic控件的图片信息呢?难道不是当脚本收到信息了,就更新下你的“Status”下的控件吗?

#include <WindowsConstants.au3>

Local $hGui, $ColorBoard[32], $msg

$hGui = GUICreate("Test", 240, 35, -1, -1, BitOR($WS_POPUP, $WS_CLIPSIBLINGS), BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))
GUISetBkColor(0x42423E)

For $i = 0 To 31
        If $i < 16 Then
                $Xpos = $i * 14
                $Ypos = 0
        Else
                $Xpos = ($i - 16) * 14
                $Ypos = 14
        EndIf
        $ColorBoard[$i] = GUICtrlCreateLabel("", $Xpos + 4, $Ypos + 4, 12, 12, -1, $WS_EX_CLIENTEDGE)
        GUICtrlSetBkColor(-1, 0x000000)
Next

GUISetState()

While True
        GUICtrlSetBkColor($ColorBoard[Random(0, 31, 1)], "0x" & Hex(Random(1, 2 ^ 30, 1), 6))        
        $msg = GUIGetMsg()
        Switch $msg
                Case -3
                        ExitLoop
        EndSwitch
WEnd
发表于 2011-10-14 16:47:00 | 显示全部楼层
回复  happytc
我想让Status列的绿灯闪烁代表机器在线,机器客户端会每隔一分钟发送一个消息过来,如果2分 ...
xms77 发表于 2011-10-14 15:32


这个绿灯是你自己设置的,那你为什么非要读pic控件呢?
发表于 2011-10-14 16:54:51 | 显示全部楼层
都试高手云集的啊
 楼主| 发表于 2011-10-14 21:32:25 | 显示全部楼层
回复 11# seniors
要知道状态是灯亮还是不亮
发表于 2011-10-14 22:56:01 | 显示全部楼层
回复 13# xms77

就是说,那个绿点是别的软件里的?不是你自己编的程序,是吗
 楼主| 发表于 2011-10-14 23:04:21 | 显示全部楼层
本帖最后由 xms77 于 2011-10-14 23:05 编辑

回复 14# seniors
不是,软件是我编的,本来灯是常亮的,现在我要用灯闪烁来表示机器在线,我要知道灯的状态是亮的还是灭的,通过灯亮,灯灭的状态来改变灯的状态
发表于 2011-10-14 23:31:52 | 显示全部楼层
回复  seniors
不是,软件是我编的,本来灯是常亮的,现在我要用灯闪烁来表示机器在线,我要知道灯的状态 ...
xms77 发表于 2011-10-14 23:04

亲,想不通啊,能编出这样的程序了,这个怎么会想不出来
简单方法用数组记录比如:$online[$i]=true
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-16 21:09 , Processed in 0.084928 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表