新建一个Qt Widgets Application
mainwindow.cpp如下:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <Windows.h>
#pragma comment (lib, "User32.lib")
char m_Name[MAXBYTE];
char m_Title[MAXBYTE];
WORD m_nNum;
BOOL CALLBACK enumAllWindow(HWND Hwnd, LPARAM IParm)//系统返还给你的窗口句柄,API调用进来的参数
{
//每次Hwnd返回回来,都需要获取他的类名和标题
GetClassNameA(Hwnd,m_Name,MAXBYTE);//获得指定窗口所属的类的类名
GetWindowTextA(Hwnd,m_Title,MAXBYTE);//查找标题
m_nNum++;
QString strName = QString::fromLocal8Bit(m_Name);
QString strTitle = QString::fromLocal8Bit(m_Title);
qDebug()<<"ID:"<<m_nNum<<"窗口句柄:"<<Hwnd<<"窗口类名:"<<strName<<"窗口标题:"<<strTitle;
// return false;//枚举一次就不枚举了
return true;//枚举到完毕
}
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
m_nNum = 0;
EnumWindows(enumAllWindow,(LPARAM)"");
}
MainWindow::~MainWindow()
{
delete ui;
}
运行结果: