首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

枚举桌面窗口,怎么将VCL生成的Application窗口过滤

2012-02-26 
枚举桌面窗口,如何将VCL生成的Application窗口过滤通过EnumDesktopWindows枚举出来的窗口,如果是用VCL编制

枚举桌面窗口,如何将VCL生成的Application窗口过滤
通过EnumDesktopWindows枚举出来的窗口,如果是用VCL编制的程序,一个exe会含有两个窗口,我测试下来,发现一个窗口的标题是   应用程序的exe名称(不包含路径),另外一个窗口的标题是   应用程序窗口的标题,象这样的:
我的程序名字是   a.exe   ,窗口的标题是c

那么通过   EnumDesktopWindows,就会得到两个窗口,一个窗口的标题是a,一个窗口的标题是c。

现在比较麻烦的是,我只想列出c出来,不知到任务管理器是如何做到的?

[解决办法]
分析源码可以知道这个Application的窗口是VCL框架内置的应用程序的默认主窗口高和宽都是0。
[解决办法]
判断Application-> Handle
BOOL CALLBACK EnumWindowsProc( HWND hwnd, LPARAM lParam)
{
if (hwnd != NULL)
{
if ( Application-> Handle == hwnd) return TRUE;
char s[80];
GetWindowText(hwnd, s, 80);
Form1-> Memo1-> Lines-> Add(s);

return TRUE;
}
else return false;
}

热点排行