Autoit 取值 问个题哈,怎么取那种值,就是鼠标放在某个控件上,然后显示出来的值

比如说你把鼠标放在360的系统托盘图标上,然后显示出来的值就是“360安全卫士-木马防火墙完全开启”;... 比如说你把鼠标放在360的系统托盘图标上,然后显示出来的值就是 “360安全卫士 - 木马防火墙完全开启”; 展开
 我来答
百度网友5311d79
2013-05-29 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3244万
展开全部
这是 TrayTip,托盘提示。
TrayTip其实就是个特殊的窗口,窗口类为tooltips_class32,要取得 TrayTip 上的文本,用WinGetTitle函数也就可以了。
TrayTip的窗口Title其实就是你要的文本。
试试下面这个:

$Rt = _GetTrayTipText('360安全卫士..*', 1)
MsgBox(0, @error, $Rt)

Func _GetTrayTipText($Title, $REFlag = 0)
;提示:此函数来自于AutoIt中文论坛-Afan
;$Title - 需关闭提示窗口的“标题”
;    (注意是非粗体字,相当于TrayTip设置的“文本”)
;$REFlag - [可选参数]是否使用正则,默认0=不使用
;返回值:返回“标题”字符串
;    未匹配到标题或标题为空返回 @Error
If $Title == '' Then Return SetError(1)
Local $aWL = WinList('[CLASS:tooltips_class32]')
Local $st, $msg, $IsIn = 0
For $i = 1 To $aWL[0][0]
$st = WinGetTitle($aWL[$i][1])
If $st = '' Then ContinueLoop
If Not $REFlag Then
If StringInStr($st, $Title) Then $IsIn = 1
ElseIf StringRegExp($st, $Title) Then
$IsIn = 1
EndIf
If $IsIn Then ExitLoop
Next
If Not $IsIn Then Return SetError(2)
Return $st
EndFunc ;==>_WinTooltipsClose
更多追问追答
追问
我试了试,用WinList 出来显示有八十个,函数是取窗口个数,咋回有那么多,然后,我循环去取每一个的title都是空的,不知道咋回事?我的系统是win7  32 位的,能不能再帮帮忙!谢谢
追答
忘记说了,操作步骤是这样的:
先将鼠标指向360托盘图标,出来TrayTip后,再按F5执行脚本。
这样才能抓到TrayTip。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式