获取窗口中文标题栏GetWindowText()

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;
        }
    }

你可能感兴趣的:(QT5,qt,开发语言)