GetWindowText(hwnd, lpString, len)会根据传入的第二个参数lpString
判断是ASCII或者Unicode编码选择调用GetWindowTextA(hwnd, lpString, len),还是GetWindowTextW(hwnd, lpString, len),所以想获取中文标题直接调用GetWindowTextW()
ASCII GetWindowTextA(hwnd, lpString, len)
Unicode GetWindowTextW(hwnd, lpString, len)
QString result;
// 查找运行窗口句柄
QString windowTitle = "微信";
//HWND hwnd = FindWindowW(NULL, (LPCWSTR)windowTitle.unicode());
//获取前台运行窗口句柄
HWND forgroundWindow = GetForegroundWindow();
if(forgroundWindow != NULL)
{
int len = GetWindowTextLength(forgroundWindow) + 1;
LPWSTR lpTitle = new WCHAR[len];
//使用unicode字符串调用
GetWindowTextW(forgroundWindow, lpTitle, len);
result = QString::fromWCharArray(lpTitle);
// cout << result.toStdString() << endl;
delete[] lpTitle;
if (result == windowTitle)
{
return true;
}
}