- the shell should load from 'Windows NT' key, not 'Windows'

- this should fix loading cmd instead of explorer from the key.

svn path=/trunk/; revision=33020
This commit is contained in:
Ged Murphy 2008-04-18 10:57:12 +00:00
parent cc6f7f3dae
commit da2959cd0e

View file

@ -133,6 +133,7 @@ cleanup:
if (ControlKey != NULL) if (ControlKey != NULL)
RegCloseKey(ControlKey); RegCloseKey(ControlKey);
HeapFree(GetProcessHeap(), 0, SystemStartOptions); HeapFree(GetProcessHeap(), 0, SystemStartOptions);
TRACE("IsConsoleShell() returning %d\n", ret);
return ret; return ret;
} }
@ -150,12 +151,12 @@ BOOL GetShell(
TRACE("(%p, %p)\n", CommandLine, hRootKey); TRACE("(%p, %p)\n", CommandLine, hRootKey);
rc = RegOpenKeyEx(hRootKey, REGSTR_PATH_WINLOGON, rc = RegOpenKeyExW(hRootKey, L"Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon",
0, KEY_QUERY_VALUE, &hKey); 0, KEY_QUERY_VALUE, &hKey);
if (rc == ERROR_SUCCESS) if (rc == ERROR_SUCCESS)
{ {
Size = MAX_PATH * sizeof(WCHAR); Size = MAX_PATH * sizeof(WCHAR);
rc = RegQueryValueEx(hKey, rc = RegQueryValueExW(hKey,
ConsoleShell ? L"ConsoleShell" : L"Shell", ConsoleShell ? L"ConsoleShell" : L"Shell",
NULL, NULL,
&Type, &Type,
@ -279,14 +280,14 @@ VOID StartShell(VOID)
/* Try to run shell in user key */ /* Try to run shell in user key */
if (GetShell(Shell, HKEY_CURRENT_USER) && TryToStartShell(Shell)) if (GetShell(Shell, HKEY_CURRENT_USER) && TryToStartShell(Shell))
{ {
TRACE("Failed to start a shell from HKEY_CURRENT_USER\n"); TRACE("Started shell from HKEY_CURRENT_USER\n");
return; return;
} }
/* Try to run shell in local machine key */ /* Try to run shell in local machine key */
if (GetShell(Shell, HKEY_LOCAL_MACHINE) && TryToStartShell(Shell)) if (GetShell(Shell, HKEY_LOCAL_MACHINE) && TryToStartShell(Shell))
{ {
TRACE("Failed to start a shell from HKEY_LOCAL_MACHINE\n"); TRACE("Started shell from HKEY_LOCAL_MACHINE\n");
return; return;
} }