难!难!难!间谍都发现不了线索,高手快来呀!

时间:2022-09-03 19:29:54
在任务栏的托盘区的图标,鼠标放上去会有提示文本出现,(当然是废话),

问题是:
    怎样编程序,得到这串文本,图标所属窗口的程序可是别人开发的。

6 个解决方案

#1


我有一个想法,不知是否可行。
你用Spy++看一下就会知道,托盘区实际上是一个ToolBar,你的程序可以得到这个ToolBar的指针,至于这个ToolBar如何用法,你自己去捉摸吧,我没用过。
还有一种方法应该是可行的,但可能要困难些。因为托盘区是一个ToolBar,鼠标移过去,当要弹出工具提示时,应该会发出一个什么消息,所以你只需钩住系统的WH_CALLWNDPROC钩子,然后过滤这条消息,应该就可以达到目的了。

#2


思路很好。

#3


怎么这么笨呢? 
      问题本在问题外!
          仔细观察一下,提示文本的内容完全跟所对应的窗口的标题一样。
 因此,只要枚举所有的顶层窗口,再获取各窗口的标题即可!
      EnumWindow()等一系列函数应该会用吧!
  

#4


To:AtCsdn  不是吧?反正我编的程序提示内容和程序标题基本上没什么联系。你也可以看一下NT的任务管理器,提示内容是CPU使用情况,也不是窗口标题。

#5


AtCsdn的方法我早已试过,行不通.

对于 sxbyl 的方法,有一点疑问,
windows 的对象,比如工具栏,
还有别的程序的窗口处理程序,
没有保护吗?可以随便访问吗?
恳请指教,我实在是不知道.

#6


对于我说的第二个方法,不需要考虑访问权限问题
对于第一种方法,由于只是访问句柄,一般来说没什么问题。比如我们可以很容易的向一个窗口发送WM_QUIT消息让其关闭,或发送一个菜单命令,是没什么问题的,我也经常这么干。

#1


我有一个想法,不知是否可行。
你用Spy++看一下就会知道,托盘区实际上是一个ToolBar,你的程序可以得到这个ToolBar的指针,至于这个ToolBar如何用法,你自己去捉摸吧,我没用过。
还有一种方法应该是可行的,但可能要困难些。因为托盘区是一个ToolBar,鼠标移过去,当要弹出工具提示时,应该会发出一个什么消息,所以你只需钩住系统的WH_CALLWNDPROC钩子,然后过滤这条消息,应该就可以达到目的了。

#2


思路很好。

#3


怎么这么笨呢? 
      问题本在问题外!
          仔细观察一下,提示文本的内容完全跟所对应的窗口的标题一样。
 因此,只要枚举所有的顶层窗口,再获取各窗口的标题即可!
      EnumWindow()等一系列函数应该会用吧!
  

#4


To:AtCsdn  不是吧?反正我编的程序提示内容和程序标题基本上没什么联系。你也可以看一下NT的任务管理器,提示内容是CPU使用情况,也不是窗口标题。

#5


AtCsdn的方法我早已试过,行不通.

对于 sxbyl 的方法,有一点疑问,
windows 的对象,比如工具栏,
还有别的程序的窗口处理程序,
没有保护吗?可以随便访问吗?
恳请指教,我实在是不知道.

#6


对于我说的第二个方法,不需要考虑访问权限问题
对于第一种方法,由于只是访问句柄,一般来说没什么问题。比如我们可以很容易的向一个窗口发送WM_QUIT消息让其关闭,或发送一个菜单命令,是没什么问题的,我也经常这么干。