#include
#include
#pragma comment(lib,"user32.lib")
/* 回调函数,用于捕获进程 */
BOOL MyEnumProc(HWND hwnd, LPARAM param)
{
LPWSTR lpString = (LPWSTR)malloc(sizeof(WCHAR) * MAX_PATH);
if (IsWindow(hwnd) &&
IsWindowEnabled(hwnd) &&
IsWindowVisible(hwnd))
{
if (GetWindowTextW(hwnd, lpString, MAX_PATH) > 0) {
qDebug() << QString::fromStdWString(lpString); // 打印出有标题的窗口
}
}
free(lpString);
return TRUE;
}
int main(int argc, char *argv[])
{
/* 枚举窗口的所有进程 */
EnumWindows(MyEnumProc, 0);
return 0;
}
句柄详解,什么是句柄?句柄有什么用?
这里需要说明:
1.这里将句柄所能标识的所有东西(如窗口、文件、画笔等)统称为“对象”。
2.图中一个小横框表示一定大小的内存区域,并不代表一个字节,如标有0X00000AC6的横框表示4个字节。</