diff --git a/dll/win32/shell32/dialogs/drvdefext.cpp b/dll/win32/shell32/dialogs/drvdefext.cpp index fe470dbd08e..785de9daa1c 100644 --- a/dll/win32/shell32/dialogs/drvdefext.cpp +++ b/dll/win32/shell32/dialogs/drvdefext.cpp @@ -553,8 +553,13 @@ CDrvDefExt::GeneralPageProc( WCHAR wszCmd[MAX_PATH]; StringCbPrintfW(wszCmd, sizeof(wszCmd), wszBuf, pDrvDefExt->m_wszDrive[0]); + WCHAR* wszArgs = PathGetArgsW(wszCmd); + if (wszArgs && *wszArgs && wszArgs != wszCmd) + wszArgs[-1] = UNICODE_NULL; + else + wszArgs = NULL; - if (ShellExecuteW(hwndDlg, NULL, wszCmd, NULL, NULL, SW_SHOW) <= (HINSTANCE)32) + if (ShellExecuteW(hwndDlg, NULL, wszCmd, wszArgs, NULL, SW_SHOW) <= (HINSTANCE)32) ERR("Failed to create cleanup process %ls\n", wszCmd); } }