From dda26dddae912a9cb912dced0f7a35af9d90dad0 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sun, 15 Apr 2012 19:11:29 +0000 Subject: [PATCH] [EXPLORER] Expand the environment variables when running startup programs Patch by Edijs Kolesnikovics, slightly modified by me See issue #6953 for more details. svn path=/trunk/; revision=56353 --- reactos/base/shell/explorer/services/startup.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/reactos/base/shell/explorer/services/startup.c b/reactos/base/shell/explorer/services/startup.c index 51654d03064..daefd1fb0e6 100644 --- a/reactos/base/shell/explorer/services/startup.c +++ b/reactos/base/shell/explorer/services/startup.c @@ -243,6 +243,9 @@ static int runCmd(LPWSTR cmdline, LPCWSTR dir, BOOL wait, BOOL minimized) STARTUPINFOW si; PROCESS_INFORMATION info; DWORD exit_code=0; + WCHAR szCmdLineExp[MAX_PATH+1]= L"\0"; + + ExpandEnvironmentStrings(cmdline, szCmdLineExp, sizeof(szCmdLineExp)); memset(&si, 0, sizeof(si)); si.cb=sizeof(si); @@ -253,7 +256,7 @@ static int runCmd(LPWSTR cmdline, LPCWSTR dir, BOOL wait, BOOL minimized) } memset(&info, 0, sizeof(info)); - if (!CreateProcessW(NULL, cmdline, NULL, NULL, FALSE, 0, NULL, dir, &si, &info)) + if (!CreateProcessW(NULL, szCmdLineExp, NULL, NULL, FALSE, 0, NULL, dir, &si, &info)) { printf("Failed to run command (%ld)\n", GetLastError()); @@ -261,7 +264,7 @@ static int runCmd(LPWSTR cmdline, LPCWSTR dir, BOOL wait, BOOL minimized) } printf("Successfully ran command\n"); //%s - Created process handle %p\n", - //wine_dbgstr_w(cmdline), info.hProcess); + //wine_dbgstr_w(szCmdLineExp), info.hProcess); if (wait) { /* wait for the process to exit */