请问有没有办法得到[系统托盘]上其它程序的所显示的Icon?? 如题,希望能有办法。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://expert.csdn.net/Expert/topic/1697/1697563.xml?temp=.8702356 看看这个,或有所得http://www.mlin.net/TraySaver.shtml LinHanLao(凌寒) 不是说了吗!然你看这个贴子:http://expert.csdn.net/Expert/topic/1697/1697563.xml?temp=.8702356 LinHanLao(凌寒)的帖子我看过了,我的要求多了点:托盘上有很多图标,我不知道我要的图标在第几个(不要告诉我用眼睛看啊),比如我知道QQ在运行,对于它在托盘上的图标信息,我只知道它的 [Tip],如何能够知道它在第几个? to masterz(MS MVP):你提供的页面很不错,可惜那个程序在我的XP上不能正常使用,无法看到效果。 看看windows API吧其实托盘在windows中也是将他作为一个特殊窗口来处理的具体我也仔细看过,我正在学API,还没学到这部分 郁闷!CSDN不是有专栏作家吗?这些个小问题就没人能答得上来?? 有两个方法,1,托盘区是一个toolbar,只要枚举到窗口发送toolbar的消息就可以获取到图标句柄.可以对位图进行比较,以判断是什么状态2.注入dll到qq,调用 shellnotify得到图标id判断状态.这个方法应该好点. to Lightest(一闪而过) :等等,第一个方法中,如何知道我要的程序的图标是第几个?第二个方法中,Shell_NotifyIcon如何能够得到图标ID? 靠!枚举全部系统进程中的图标,还不信找不到它丫尔,再比较icon! to grey_whp(我爱C++):这不太好吧。如果我有一个程序,把记事本图标提取出来放在托盘上,你如何能够知道那是我的程序?除非我告诉你吧。 只有笨办法全部比较.toolbar中的图标有限.比较的时候只需要判断某几个特殊的点是否是指定的颜色.这种方式比较很快.在程序中包含所有的qq图标一一与托盘区图标比较就行了.第二个方法.既然dll都注入了.在同一个进程中挂一个函数难不到你吧?你可以监控到qq各个图标的id.这个id是不变的.这样一旦状态改变,你可以立即知道,而不用时刻比较图标. spy++ 看一下,那个桌面的托盘应该是桌面窗口的子窗口,所以只需要枚举桌面窗口的子窗口就可以了。然后可以找到这个图标了。 to Lightest(一闪而过) :第一个方法中,比较是能够做到的,不过每次检测都要去从头比较,因为图标的位置可能有变化,如果每次知道图标在第几个倒是可以完成。第二个方法,你的意思是不是这样:通过注入DLL替换掉Shell_NotifyIcon,当图标改变时即可判断出图标的ID,而我不知道那几个图标的ID是什么,还要根据ID所指对应的图标的颜色特征比较来判断出使用的是什么图标?不知道是不是可行,因为这方面没用过。 顺带问点怪问题:我刚发现这个页面上的一个小问题,你在这个发出回复的文本框的上面大概一行处点击鼠标,然后按Ctrl+V即可把你的剪贴板上的东西粘上去,可是那里到底是个什么控件?有什么用? 第一种方法中,肯定一个图标需要判断多个特征点相同.但是否定一个图标只需要有一个点不同即可.所以,每次都从头比较也没有什么不妥.第二种方法.得到id就行了.你既然是判断状态,能够得到id,就足够了.至于那一个id对应那一个状态.只需要你第一次测试的时候记录下来,硬代码写出来就行了.不必再去获取图标. 第二种方法好一些,因为有一些与QQ相关的黑软,使用的图标就是由QQ改来的,只判断几个点恐怕不好区分。另外的一个论坛上的类似的问题:http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/Q_20096375.html#6479464 DLL问题 输入法编程真难,这些难题如何解决? 类似BT的界面怎么实现的 ADO的字符转换问题? GetLastError()== ERROR_CRC 为什么?怎么办???? ScrollBar 自画的问题? 请教问如何将CTime数据类型转换为CString类型 如何获得当前串口的状态(DOS) 用directx录制asf文件,怎么实时计算它的大小啊? 再问:仍是那个问题 关于Tcp/IP的问题 哪里有vc2.0的下载呀!
http://www.mlin.net/TraySaver.shtml
http://expert.csdn.net/Expert/topic/1697/1697563.xml?temp=.8702356
具体我也仔细看过,我正在学API,还没学到这部分
1,托盘区是一个toolbar,只要枚举到窗口发送toolbar的消息就可以获取到图标句柄.可以对位图进行比较,以判断是什么状态
2.注入dll到qq,调用 shellnotify得到图标id判断状态.这个方法应该好点.
第一个方法中,如何知道我要的程序的图标是第几个?
第二个方法中,Shell_NotifyIcon如何能够得到图标ID?
如果我有一个程序,把记事本图标提取出来放在托盘上,你如何能够知道那是我的程序?
除非我告诉你吧。
第二个方法.既然dll都注入了.在同一个进程中挂一个函数难不到你吧?你可以监控到qq各个图标的id.这个id是不变的.这样一旦状态改变,你可以立即知道,而不用时刻比较图标.
第二种方法.得到id就行了.你既然是判断状态,能够得到id,就足够了.至于那一个id对应那一个状态.只需要你第一次测试的时候记录下来,硬代码写出来就行了.不必再去获取图标.
http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/Q_20096375.html#6479464