QMap<QString,QVariant> window; HWND windowHandle; char title[255]; windowHandle = GetForegroundWindow(); while (windowHandle!=0){ GetWindowText(windowHandle,title,255); window["title"] = (QString)title; window["flagActivity"] = IsWindowEnabled(windowHandle); // имеет ли окно фокус ввода windowHandle=GetWindow(windowHandle,GW_HWNDnext); //следующее окно }
PROCESSENTRY32 PE32; HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if(hSnapshot == INVALID_HANDLE_VALUE) { qDebug()<<"CreateToolhelp32Snapshot() failed."; return; } PE32.dwSize = sizeof(PROCESSENTRY32); if(!Process32First(hSnapshot, &PE32)) { CloseHandle(hSnapshot); qDebug()<<"Process32First() failed."; return; } do { qDebug()<< PE32.th32ProcessID << QString::fromWCharArray(PE32.szExeFile); // GetWindowThreadProcessId(GetForegroundWindow(),) qDebug()<< GetThreadId(hSnapshot); THREADENTRY32 te32; te32.dwSize = sizeof(THREADENTRY32); if (Thread32First(hSnapshot, &te32)) { qDebug() << te32.th32ThreadID << "! " << te32.th32OwnerProcessID << endl; while (Thread32Next(hSnapshot, &te32)) qDebug() << te32.th32ThreadID << " !" << te32.th32OwnerProcessID << endl; } else qDebug()<<"!"<<te32.th32ThreadID; } while(Process32Next(hSnapshot, &PE32)); CloseHandle(hSnapshot);
QList<QMap<QString,QVariant> > WinAPIWindows::GetListActivityWindow(bool visible){ WinAPIWindows::s_instance->m_flagVisible = visible; // активные окна EnumWindows(EnumWindowsProc,NULL); QList<QMap<QString,QVariant> > map; return map;}
bool WinAPIWindows::m_flagVisible = что-то-там;
m_flagVisible = что-то-там;