/*
windows头文件
#include <Windows.h>
#include <tlhelp32.h>
*/
QTimer *t = new QTimer();
connect(t, &QTimer::timeout, [&]() {
HWND hWnd = ::GetLastActivePopup(::GetForegroundWindow()); // 获得顶层窗口句柄
DWORD dwPID;
GetWindowThreadProcessId(hWnd, &dwPID); // 获得句柄的PID
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); // 获得系统进程快照句柄
PROCESSENTRY32 pe = { sizeof(pe) };
for (BOOL ret = Process32First(hSnapshot, &pe); ret; ret = Process32Next(hSnapshot, &pe)) { // 遍历 进程
if (pe.th32ProcessID == dwPID && "notepad.exe" == QString::fromWCharArray(pe.szExeFile)) { // 先判断PID 再判断 进程名称
LD << "notepad.exe 在最顶层 激活本程序";
activateWindow(); // 激活程序到最前
break;
}
}
CloseHandle(hSnapshot); // 记得关掉快照句柄
});
t->start(100);
Qt 界面置于指定程序最前
可以请我喝杯咖啡吗QAQ~
本文作者:vanxkr
本文链接:http://www.vanxkr.com/2022/3/Qt-top-window
版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0许可协议。转载请注明出处!
0 条评论