/* Expand string (if applicable) */
if (dwType == REG_EXPAND_SZ)
- ExpandEnvironmentStringsW(Shell, CommandLine, MAX_PATH);
+ ExpandEnvironmentStringsW(Shell, CommandLine, ARRAYSIZE(CommandLine));
else if (dwType == REG_SZ)
wcscpy(CommandLine, Shell);
else
TRACE("Should run '%s' now\n", debugstr_w(CommandLine));
+ SwitchDesktop(WLSession->ApplicationDesktop);
+
/* Start process */
StartupInfo.cb = sizeof(StartupInfo);
StartupInfo.lpReserved = NULL;
- StartupInfo.lpDesktop = NULL;
+ StartupInfo.lpDesktop = L"WinSta0\\Default";
StartupInfo.lpTitle = NULL;
StartupInfo.dwFlags = 0;
StartupInfo.cbReserved2 = 0;
if (!Result)
{
TRACE("Failed to run setup process\n");
+ SwitchDesktop(WLSession->WinlogonDesktop);
return FALSE;
}
CloseHandle(ProcessInformation.hThread);
CloseHandle(ProcessInformation.hProcess);
+ SwitchDesktop(WLSession->WinlogonDesktop);
+
TRACE ("RunSetup() done\n");
return TRUE;
/* Check for pending setup */
if (GetSetupType() != 0)
{
- TRACE("WL: Setup mode detected\n");
-
/* Run setup and reboot when done */
- SwitchDesktop(WLSession->ApplicationDesktop);
+ TRACE("WL: Setup mode detected\n");
RunSetup();
}
else
+ {
PostMessageW(WLSession->SASWindow, WLX_WM_SAS, WLX_SAS_TYPE_CTRL_ALT_DEL, 0);
+ }
(void)LoadLibraryW(L"sfc_os.dll");