找回密码
 加入
搜索
查看: 12187|回复: 11

[系统综合] [已解决]点击托盘图标同时弹出托盘右键的问题

 火.. [复制链接]
发表于 2011-12-14 15:39:41 | 显示全部楼层 |阅读模式
本帖最后由 半芯蕃茄 于 2011-12-14 21:01 编辑
#NoTrayIcon
#Include <GuiToolBar.au3>
_SysTray_ClickItem("酷狗", "right", 1)
;====================================================================================

;Autor(s):        R.Gilman (a.k.a rasim); Siao (Thanks for idea )

;====================================================================================

Func _SysTray_ClickItem($iTitle, $iButton = "left", $iClick = 1)

    Local $hToolbar, $iButCount, $aRect, $i

    If Not $iTitle Then

        MsgBox(16, "Error", "Please indicate title")

        Return 0

    EndIf

    

  $hToolbar = ControlGetHandle('[Class:Shell_TrayWnd]', '', '[Class:ToolbarWindow32;Instance:1]')

    If @error Then

       MsgBox(16, "Error", "System tray not found")

        Return 0

    EndIf

    

    $iButCount = _GUICtrlToolbar_ButtonCount($hToolbar)

    If $iButCount = 0 Then

        MsgBox(16, "Error", "Not found item in system tray")

       Return

    EndIf

    

    For $i = 0 To $iButCount - 1

        $cID = _GUICtrlToolbar_IndexToCommand($hToolBar, $i)

        If StringInStr(_GUICtrlToolbar_GetButtonText($hToolBar, $i), $iTitle) Then

           $aRect = _GUICtrlToolbar_GetButtonRect($hToolBar, $i)

           ControlClick("[Class:Shell_TrayWnd]", "", "ToolbarWindow321", $iButton, $iClick, $aRect[0], 5)

           $aRect = 0

          Return 1

     EndIf

   Next

    MsgBox(48, "Fail", "Required item not found")

EndFunc
以上代码是右键点击酷狗的托盘图标,但是很奇怪的是连托盘空白处的右键也弹了出来。求解决方法,不想弹出如图弹出的:

本帖子中包含更多资源

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

×
发表于 2011-12-14 15:53:11 | 显示全部楼层
同问,我用AUTOIT3汉化版的那个托盘菜单,也会出现这样的情况,既弹出托盘程序的菜单,也会出现XP系统带的任务栏的右键菜单..
发表于 2011-12-14 19:20:10 | 显示全部楼层
本帖最后由 lixiaolong 于 2011-12-14 19:54 编辑

回复 1# 半芯蕃茄

把56行改成这样试一下.
ControlClick("[Class:Shell_TrayWnd]", "", "ToolbarWindow321", $iButton, $iClick, $aRect[0] + 5, 5)

给你一个代码,这个比较准.
#include "SysTray_UDF.au3"

Opt("WinTitleMatchMode", 4)
Opt("WinSearchChildren", 1)

_SysTray_ClickItem("kugou7.exe", "right")

Func _SysTray_ClickItem($iTitle, $iButton = "left", $iClick = 1)
        Local $k_pos = MouseGetPos()
        Local $posTray = WinGetPos(_FindTrayToolbarWindow())
        Local $index = _SysTrayIconIndex($iTitle)

        If $index <> -1 Then
                Local $pos = _SysTrayIconPos($index)
                If $pos = -1 Then
                        $pos = _SysTrayIconPos($index)
                        If $pos = -1 Then Exit
                EndIf
                MouseMove($pos[0], $pos[1], 0)
                Sleep(100)
                MouseClick("right")
                MouseMove($k_pos[0], $k_pos[1], 0)
        EndIf
EndFunc   ;==>_SysTray_ClickItem

评分

参与人数 1金钱 +10 收起 理由
半芯蕃茄 + 10 感谢分享

查看全部评分

 楼主| 发表于 2011-12-14 20:53:50 | 显示全部楼层
回复 3# lixiaolong


    非常感谢,确实比较准确。。
发表于 2011-12-19 16:45:12 | 显示全部楼层
测试xiaolong 的代码,,效果很好,,
感谢
发表于 2011-12-20 08:53:58 | 显示全部楼层
谢谢分享,留个脚印。
发表于 2012-1-3 22:19:47 | 显示全部楼层
我用xiaolong的代码!出现图所示“求解答

本帖子中包含更多资源

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

×
发表于 2012-1-4 14:56:50 | 显示全部楼层
回复 7# michealwang

打不开【SysTray_UDF.au3】文件.

下载新版本里有这个文件.
http://www.autoitx.com/thread-12964-1-1.html

或者把第一行改成这样试试.
#include <SysTray_UDF.au3>
发表于 2012-1-4 16:46:22 | 显示全部楼层
我下载了最新的版本,也试着把第一行改成“#include <SysTray_UDF.au3>”还是出现同样的错误啊
发表于 2012-1-5 19:20:50 | 显示全部楼层
回复 9# michealwang

发给你吧.

本帖子中包含更多资源

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

×
发表于 2012-1-7 14:09:14 | 显示全部楼层
再次感谢“lixiaolong ”的源码!真的很感谢“lixiaolong ”大大,你是那么的热情!
  我现在阐述一下我要实现的目的:
   PUBWIN2009的客户机“请求挂机”功能是:一旦你挂了机,就算是重启了还是挂机的!而其他的挂机锁不能实现!
   而PUBWIN2009的“请求挂机”是在最右下角。如图:我想把它创建成桌面快捷方式!

本帖子中包含更多资源

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

×
发表于 2014-10-30 11:15:21 | 显示全部楼层
感谢分享,学习啦~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-28 18:26 , Processed in 0.080646 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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