有没办法刷新任务栏的图标?不要告诉我结束Explorer
一些程序,强行结束后,图标依然残留!想问问有没办法可以刷新这里的图标?
结束explorer的办法就算了!呵呵~
[ 本帖最后由 破帽遮颜 于 2008-6-14 18:56 编辑 ] 检查当前屏幕分辩率,然后计算系统托盘所在的可能位置,移动光标在可能位置上划过去。
就刷新了。
呵呵,一个很笨但有效的办法。 有个注册表值是干这个使的,在网上找找,我实在想不起来了, 只能模拟鼠标移动到托盘。。官方有UDF 这个都还有UDF?
_RefreshSystemTray()
Func _RefreshSystemTray($nDelay = 1000)
Local $oldMatchMode = Opt("WinTitleMatchMode", 4)
Local $oldChildMode = Opt("WinSearchChildren", 1)
Local $error = 0
Do
Local $hWnd = WinGetHandle("classname=TrayNotifyWnd")
If @error Then
$error = 1
ExitLoop
EndIf
Local $hControl = ControlGetHandle($hWnd, "", "Button1")
If $hControl <> "" And ControlCommand($hWnd, "", $hControl, "IsVisible") Then
ControlClick($hWnd, "", $hControl)
Sleep($nDelay)
EndIf
Local $posStart = MouseGetPos()
Local $posWin = WinGetPos($hWnd)
Local $y = $posWin
While $y < $posWin + $posWin
Local $x = $posWin
While $x < $posWin + $posWin
DllCall("user32.dll", "int", "SetCursorPos", "int", $x, "int", $y)
If @error Then
$error = 2
ExitLoop 3;
EndIf
$x += 8
WEnd
$y += 8
WEnd
DllCall("user32.dll", "int", "SetCursorPos", "int", $posStart, "int", $posStart)
If $hControl <> "" And ControlCommand($hWnd, "", $hControl, "IsVisible") Then
ControlClick($hWnd, "", $hControl)
EndIf
Until 1
Opt("WinTitleMatchMode", $oldMatchMode)
Opt("WinSearchChildren", $oldChildMode)
SetError($error)
EndFunc
回复 6# sanhen 的帖子
测试可用,不 错哦,收藏了 三恨怎么什么UDF都有哇!佩服! 有没有更简单的办法呢? 有。。。 谢谢 叁恨居士 我会用啦.[ 本帖最后由 madkook 于 2008-8-13 14:00 编辑 ] 原帖由 sanhen 于 2008-8-13 13:00 发表 http://www.autoitx.com/images/common/back.gif
有。。。
吊胃口了。
能教教吗
比如我关闭迅雷进程
ProcessClose("Thunder5.exe")
但托盘还有迅雷图标,用鼠标移动刷新很是麻烦。
怎么用最简单办法刷新托盘图标。
[ 本帖最后由 番茄 于 2008-8-13 14:06 编辑 ] 学习了,以前一直都没在意它 学习了。。。。。。。。。
页:
[1]