У меня есть этот код:
#define _WIN32_WINNT 0x0500
#include <cstdlib>
#include <iostream>
#include <windows.h>
using namespace std;
int main(int argc, char *argv[])
{
Sleep(500);
HDESK hOriginalThread;
HDESK hOriginalInput;
hOriginalThread = GetThreadDesktop(GetCurrentThreadId());
hOriginalInput = OpenInputDesktop(0, FALSE, DESKTOP_SWITCHDESKTOP);
HDESK hNewDesktop=CreateDesktop("Test",NULL,NULL,0,DELETE|READ_CONTROL|WRITE_DAC|WRITE_OWNER|GENERIC_ALL,NULL);
cout<<SetThreadDesktop(hNewDesktop);
Sleep(575);
SwitchDesktop(hNewDesktop);
system("cmd");
Sleep(1000);
SwitchDesktop(hOriginalInput);
SetThreadDesktop(hOriginalThread);
CloseDesktop(hNewDesktop);
CloseDesktop(hOriginalInput);
Sleep(1000);
return 0;
}
Когда я запускаю это, он создает новый рабочий стол, переключается на него, но командная строка не появляется. Я должен вручную завершить процесс "cmd", и моя программа затем продолжится. Есть ли способ показать окно любого приложения на другом рабочем столе? И как я могу изменить фон рабочего стола, который я создал? Пожалуйста, помогите.