
?????-V3.0.0 — мой видеопроигрыватель, и на этом снимке экрана мы можем обнаружить, что видеопроигрыватель уже установлен в качестве дочернего окна окна WorkerW. Видео не отображается на моем рабочем столе. Может ли кто-нибудь сказать мне причину?
P.S. Ниже приведена основная часть моего движка обоев:
Код: Выделить всё
int sleepTime = sleepTimeEdit->text().toInt();
Sleep(sleepTime);
HWND hProgman = FindWindow(L"Progman", 0);
SendMessageTimeout(hProgman, 0x52c, 0, 0, 0, 100, 0);
//Extract video name
QFileInfo fileinfo(newVideoPath);
QString videoName = fileinfo.fileName();
//convert videoName from QString to wstring
videoName = videoName + " - mpv";
std::wstring wVideoName = videoName.toStdWString();
LPCWSTR windowName = wVideoName.c_str();
//find my video player window
HWND hMpvWindow = FindWindow(0, L"?????-V3.0.0");
// whether window SHELLDLL_DefView is still in the Progman, cause after version 24H2, Progman will not split to three different windows after receiving 0x52c
HWND hDefView = FindWindowEx(hProgman, 0, L"SHELLDLL_DefView", 0);
if (hDefView != NULL)
{
HWND hWorkerW = FindWindowEx(hProgman, 0, L"WorkerW", 0);
if (hWorkerW != NULL)
{
SetParent(hMpvWindow, hWorkerW);
ShowWindow(hDefView, SW_HIDE);
Sleep(0);
ShowWindow(hDefView, SW_SHOWNORMAL);
}
}
else
{
SetParent(hMpvWindow, hProgman);
EnumWindows(EnumWindowsProc, 0);
}

Итак, мой последний вопрос: почему видеоплеер, который я пишу с помощью qt, не может отображаться, когда мой движок обоев установил его как дочернее окно WorkerW окно?
Подробнее здесь: https://stackoverflow.com/questions/798 ... per-engine
Мобильная версия