2009-06-27 38 views
0

我想知道是否有可能知道外部应用程序是否有一个窗口显示在任务栏上。我有一个程序有时会显示一条错误消息,并显示在任务栏上。如果我“关闭”这个信息,它将会隐形,但从我所看到的它仍然存在。因此,我知道该窗口是否可见并且因此“可点击”的唯一方法是检查它是否显示在任务栏上。(Win Api)检查外部应用程序窗口是否在任务栏上

我该怎么做?

感谢

+0

也许如果我检查WS_VISIBLE它也会起作用,我不知道? – 2009-06-27 16:16:54

回答

0

首先使用间谍++(随视觉工作室)找出类名,窗口名称和窗口的层次结构。提示:在屏幕上显示错误信息时,运行spy ++,按Alt + F3,然后按Alt + D,然后将取景器工具吸到错误消息窗口中,然后按确定。

如果窗口是顶层(即其父级是桌面),则使用FindWindow API。如果窗口不是最高级别(即其父窗口是其他窗口),则首先使用FindWindow查找主窗口,然后使用FindWindowEx(可能递归)搜索该错误消息窗口。

0

管理任务栏的记录COM接口是ITaskbarList,但它只允许你添加/删除按钮,你不能获得一个列表现有的按钮。

所以,你有三种选择:

一)进入无证土地,发现从2000年改为XP任务栏及其子标签控件或工具栏(),看看它的每一项数据无证(IIRC有与此信息一个开源改变任务栏按钮顺序应用程序在那里)

b)检查你所关心的样式窗口约(WS_VISIBLE并沿着这些线路(没有所有者或WS_EX_APPWINDOW),而不是WS_EX_TOOLWINDOW)或东西

C)挂钩/子类破损的应用程序

相关问题