上一篇 | 下一篇

VC++基础:枚举当前打开的所有窗口

发布: 2008-6-26 14:12 | 作者: admin | 来源: | 查看: 4次

一、原理

其原理是利用GetWindowLong(hWnd,GWL_STYLE)& WS_VISIBLE对打开的窗口进行查找,并将窗口的句柄存放在一个HWND的数组中,结合EnumWindows进行窗口的枚举,从而得到响应的窗口名称;

二、主要函数介绍:

BOOL EnumWindows(

WNDENUMPROC lpEnumFunc, // callback function

LPARAM lParam // application-defined value

);

LONG GetWindowLong(

HWND hWnd, // handle to window

int nIndex // offset of value to retrieve

);

详细资料请查看MSDN;

在此我定义了一个过程EnumWindowsProc,通过GetWindowLong来完成对打开程序窗口的枚举;通过ListBox实现程序的列举;并将每次调用的枚举结果存放在/info目录下当天日期为文件名称的.txt文件里;

三、主要实现代码:

枚举窗口句柄:

if(::GetWindowLong(hWnd,GWL_STYLE)& WS_VISIBLE)

{

m_hwndFind[m_num] = hWnd;//record the HWND handle into array

m_num++;//count start

}

字号: | 推荐给好友

评分:0

我来说两句

网络推荐