diff --git a/dlls/user32/win.c b/dlls/user32/win.c index da196edc585..44b15b1a9bf 100644 --- a/dlls/user32/win.c +++ b/dlls/user32/win.c @@ -1785,6 +1785,7 @@ HWND WINAPI GetDesktopWindow(void) static const WCHAR command_line[] = {'\\','e','x','p','l','o','r','e','r','.','e','x','e',' ','/','d','e','s','k','t','o','p',0}; STARTUPINFOW si; PROCESS_INFORMATION pi; + WCHAR systemdir[MAX_PATH]; WCHAR cmdline[MAX_PATH + sizeof(command_line)/sizeof(WCHAR)]; memset( &si, 0, sizeof(si) ); @@ -1794,10 +1795,11 @@ HWND WINAPI GetDesktopWindow(void) si.hStdOutput = 0; si.hStdError = GetStdHandle( STD_ERROR_HANDLE ); - GetSystemDirectoryW( cmdline, MAX_PATH ); + GetSystemDirectoryW( systemdir, MAX_PATH ); + lstrcpyW( cmdline, systemdir ); lstrcatW( cmdline, command_line ); if (CreateProcessW( NULL, cmdline, NULL, NULL, FALSE, DETACHED_PROCESS, - NULL, NULL, &si, &pi )) + NULL, systemdir, &si, &pi )) { TRACE( "started explorer pid %04x tid %04x\n", pi.dwProcessId, pi.dwThreadId ); WaitForInputIdle( pi.hProcess, 10000 );