nop 发表于 2011-12-7 17:22:34

已解决 如何点击任务栏托盘图标?

本帖最后由 nop 于 2011-12-16 20:35 编辑

比如我右击托盘QQ图标再选择“离线”,再比如右击阿里旺旺选择“注销”,方法应该都是一样的,如何实现?

lixiaolong 发表于 2011-12-7 20:41:02

回复 1# nop

参考了这里.
http://www.autoitscript.com/forum/topic/106169-tray-icon-click/

#include "SysTray_UDF.au3"
;Left-click Feedreader's icon on system tray
; Press hide inactive icon's button part is from Valik's refresh system tray script!
$oldMatchMode = Opt("WinTitleMatchMode", 4)
$oldChildMode = Opt("WinSearchChildren", 1)
$class = "classname=Shell_TrayWnd"
$hControl = ControlGetHandle($class, "", "Open Skype")
; get tray position and move there. Helps if Auto Hide tray option is used.
$posTray = WinGetPos(_FindTrayToolbarWindow ())
MouseMove($posTray, $posTray)
$index = _SysTrayIconIndex ("QQ.exe"); Change this to some other application if needed
If $index <> -1 Then
   $pos = _SysTrayIconPos ($index)
   If $pos = -1 Then
      ; ***** Moved by CatchFish *****
      ; If XP and the Hide Inactive Icons mode is active
      If $hControl <> "" And ControlCommand($class, "", $hControl, "IsVisible", "") Then
         ControlClick($class, "", $hControl)
         Sleep(250); Small delay to allow the icons to be drawn
      EndIf
      ; ******************************
      $pos = _SysTrayIconPos ($index)
      If $pos = -1 Then Exit ; ** A real error this time;)
   EndIf
   MouseMove($pos, $pos)
   Sleep(1000)
   MouseClick("right")

   MouseMove($pos - 50 , $pos - 200)
   MouseClick("left")
EndIf

nop 发表于 2011-12-7 23:30:12

回复 2# lixiaolong


    看的好眼花啊。。这段我还是用按键精灵来录制吧

zch11230 发表于 2011-12-8 17:32:22

按键精灵录出来的应该全是座标吧

jsgh1983 发表于 2011-12-10 19:02:36

看着虽然代码眼晕,但慢慢研究会学不少东西的!

sgj584520 发表于 2011-12-10 21:51:57

看了都是英文啊,头大的不行

x163169x 发表于 2012-6-1 17:43:06

回复 2# lixiaolong


   这串代码太好了,解决了一个问题。

x163169x 发表于 2012-6-1 21:34:01

已经成功应用,感谢2楼大大

hgzhoulin 发表于 2014-10-30 11:48:14

感谢2楼大大分享,学习啦~

cashiba 发表于 2016-12-16 20:52:38

点不到位置.....
{:face (382):}
页: [1]
查看完整版本: 已解决 如何点击任务栏托盘图标?