【发布时间】:2011-01-18 17:33:56
【问题描述】:
问题是如何从正在运行的程序中找到类名和这些程序的标题。我知道已经有一些扫描工具,比如Visual Studio的WinDowse或spy++,但我要问的是如何在我们自己的源代码中制作类似的程序,使用什么功能,是否有一些开源程序那能帮上忙吗?代码赞赏,链接也:)
【问题讨论】:
问题是如何从正在运行的程序中找到类名和这些程序的标题。我知道已经有一些扫描工具,比如Visual Studio的WinDowse或spy++,但我要问的是如何在我们自己的源代码中制作类似的程序,使用什么功能,是否有一些开源程序那能帮上忙吗?代码赞赏,链接也:)
【问题讨论】:
使用EnumWindows 枚举所有顶级窗口并获取它们的句柄。
将句柄传递给GetWindowText和GetClassName,分别获取窗口标题和窗口类。
例子:
EnumWindows(EnumProc, 0);
...
BOOL CALLBACK EnumProc(HWND hWnd, LPARAM lParam) {
TCHAR title[256];
TCHAR className[256];
GetWindowText(hWnd, title, 256);
MessageBox(NULL, title, NULL, MB_OK);
GetClassName(hWnd, className, 256);
MessageBox(NULL, className, NULL, MB_OK);
return TRUE;
}
【讨论】:
return TRUE。