#if defined(Q_WS_WIN)#include "windows.h"BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam){ Q_UNUSED(lParam); WCHAR title[80]; GetWindowText(hwnd,title,sizeof(title)); QString sTitle, cTitle;#ifdef UNICODEsTitle = QString::fromWCharArray(title);#elsesTitle = QString::fromLocal8Bit(title);#endif cTitle = Program::getName(); if(sTitle == cTitle) return false; return true;}bool checkProcess(){ return EnumWindows(EnumWindowsProc, NULL);}#elif defined(Q_WS_X11)bool checkProcess() { return true; }#endif
bool Result = true;int len = GetWindowTextLength(hwnd);if (len > 0){ LPTSTR title = new TCHAR[++len]; if (GetWindowTextW(hwnd, title, len) > 0) { Result = QString::fromWCharArray(title) != Program::getName(); } else { // Ошибка при получении заголовка окна } delete title;}else { // Либо заголовок пуст, либо ошибка.}return Result;