vc ++: меню "Пуск" не может появиться после CreateDesktop в windows10 - PullRequest
0 голосов
/ 09 июля 2020

В windows 10, Создайте новый рабочий стол и переключитесь на него, стартовое меню нового рабочего стола не может появиться, хотя исходное может. А вот с win7 проблем нет. Зачем? Как решить? здесь ниже код:

void main()
{
    char DeskName[] = "abc";
    STARTUPINFO si = { 0 };
    PROCESS_INFORMATION pi = { 0 };
    si.cb = sizeof(STARTUPINFO);
    si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
    si.wShowWindow = SW_SHOW;
    si.lpDesktop = DeskName;

    HDESK hdesk = CreateDesktop(DeskName, NULL, NULL, 0, GENERIC_ALL, NULL);
    
    bool rv = SetThreadDesktop(hdesk);
    if (rv == false) {
        int err = GetLastError();
        printf("err:%d\n", err);
        return;
    }

    SwitchDesktop(hdesk);
    CreateProcess("C:\\Windows\\explorer.exe", NULL, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi);
}
...