Всем доброго времени суток!
Есть такая проблема, после создания еще одного рабочего стола и запуска в нем LiteStep (менеджер рабочего стола типа експлорера) в нем не работают горячие клавиши. Точнее работают но действие от них происходит на первом рабочем столе.
Код | DWORD curid; HDESK newdesk, olddesk; STARTUPINFO info={sizeof(info)}; PROCESS_INFORMATION processInfo;
memset(&info, 0, sizeof(info)); memset(&info, 0, sizeof(processInfo)); info.cb = sizeof(info); info.dwFlags = 0; info.lpDesktop = "Desk1";
curid = GetCurrentThreadId(); olddesk = GetThreadDesktop(curid); newdesk = CreateDesktopW (L"Desk1", NULL, NULL, NULL, 0x10000000 , NULL); newdesk = OpenDesktopW (L"Desk1", 0, 0, 0x10000000);
if (!newdesk || !olddesk) return -1;
if (CreateProcess("litestep.exe", NULL, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &info, &processInfo)) { if (SwitchDesktop(newdesk) && SetThreadDesktop(newdesk)) { ::WaitForSingleObject(processInfo.hProcess, INFINITE); SwitchDesktop (olddesk); } CloseHandle(processInfo.hProcess); CloseHandle(processInfo.hThread); }
CloseDesktop (newdesk);
return (EXIT_SUCCESS);
|
В тоже время в утилите Русиновича Desktops таких проблем не возникает.
Вопрос, надо как то по другому создавать рабочий стол\запускать процесс или необходимо вручную отбиндить горячие клавиши от предыдущего рабочего стола? И если второе то как? |