如题,希望能有办法。

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/1697/1697563.xml?temp=.8702356
      

  2.   

    看看这个,或有所得
    http://www.mlin.net/TraySaver.shtml
      

  3.   

    LinHanLao(凌寒) 不是说了吗!然你看这个贴子:
    http://expert.csdn.net/Expert/topic/1697/1697563.xml?temp=.8702356
      

  4.   

    LinHanLao(凌寒)的帖子我看过了,我的要求多了点:托盘上有很多图标,我不知道我要的图标在第几个(不要告诉我用眼睛看啊),比如我知道QQ在运行,对于它在托盘上的图标信息,我只知道它的 [Tip],如何能够知道它在第几个?
      

  5.   

    to  masterz(MS MVP):你提供的页面很不错,可惜那个程序在我的XP上不能正常使用,无法看到效果。
      

  6.   

    看看windows API吧其实托盘在windows中也是将他作为一个特殊窗口来处理的
    具体我也仔细看过,我正在学API,还没学到这部分
      

  7.   

    郁闷!CSDN不是有专栏作家吗?这些个小问题就没人能答得上来??
      

  8.   

    有两个方法,
    1,托盘区是一个toolbar,只要枚举到窗口发送toolbar的消息就可以获取到图标句柄.可以对位图进行比较,以判断是什么状态
    2.注入dll到qq,调用 shellnotify得到图标id判断状态.这个方法应该好点.
      

  9.   

    to  Lightest(一闪而过) :等等,
    第一个方法中,如何知道我要的程序的图标是第几个?
    第二个方法中,Shell_NotifyIcon如何能够得到图标ID?
      

  10.   

    靠!枚举全部系统进程中的图标,还不信找不到它丫尔,再比较icon!
      

  11.   

    to grey_whp(我爱C++):这不太好吧。
    如果我有一个程序,把记事本图标提取出来放在托盘上,你如何能够知道那是我的程序?
    除非我告诉你吧。
      

  12.   

    只有笨办法全部比较.toolbar中的图标有限.比较的时候只需要判断某几个特殊的点是否是指定的颜色.这种方式比较很快.在程序中包含所有的qq图标一一与托盘区图标比较就行了.
    第二个方法.既然dll都注入了.在同一个进程中挂一个函数难不到你吧?你可以监控到qq各个图标的id.这个id是不变的.这样一旦状态改变,你可以立即知道,而不用时刻比较图标.
      

  13.   

    spy++ 看一下,那个桌面的托盘应该是桌面窗口的子窗口,所以只需要枚举桌面窗口的子窗口就可以了。然后可以找到这个图标了。
      

  14.   

    to Lightest(一闪而过) :第一个方法中,比较是能够做到的,不过每次检测都要去从头比较,因为图标的位置可能有变化,如果每次知道图标在第几个倒是可以完成。第二个方法,你的意思是不是这样:通过注入DLL替换掉Shell_NotifyIcon,当图标改变时即可判断出图标的ID,而我不知道那几个图标的ID是什么,还要根据ID所指对应的图标的颜色特征比较来判断出使用的是什么图标?不知道是不是可行,因为这方面没用过。
      

  15.   

    顺带问点怪问题:我刚发现这个页面上的一个小问题,你在这个发出回复的文本框的上面大概一行处点击鼠标,然后按Ctrl+V即可把你的剪贴板上的东西粘上去,可是那里到底是个什么控件?有什么用?
      

  16.   

    第一种方法中,肯定一个图标需要判断多个特征点相同.但是否定一个图标只需要有一个点不同即可.所以,每次都从头比较也没有什么不妥.
    第二种方法.得到id就行了.你既然是判断状态,能够得到id,就足够了.至于那一个id对应那一个状态.只需要你第一次测试的时候记录下来,硬代码写出来就行了.不必再去获取图标.
      

  17.   

    第二种方法好一些,因为有一些与QQ相关的黑软,使用的图标就是由QQ改来的,只判断几个点恐怕不好区分。另外的一个论坛上的类似的问题:
    http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/Q_20096375.html#6479464