Я использую функцию CreateProcessW для создания процесса. В эту функцию, передавая первый параметр, т. Е. LpApplicationName с некоторыми пробелами, как показано ниже:
В пути ниже (pszExePath) есть пробелы, потому что этот процесс не создается.
pszExePath = L"C:\\Program Files\\Common Files\\Installer\\emrinst.exe";
Я пытался обрезать пространство, используя приведенные ниже строки, но все еще сталкиваюсь с проблемой.
pszExePath = L"\"";
pszExePath += L"C:\\Program Files\\Common Files\\Installer\\emrinst.exe";
pszExePath += L"\"";
Как обрезать пространство из lpApplicationName функции CreateProcessW?
Ниже приведен обновленный код:
pszExePath = L"C:\\Program Files\\Common Files\\Installer\\emrinst.exe";
strCommandLine = "C:\\Testfolder\\Program Files\\Common Files\\Apps\\emarmain\\emr-test_folder\\Millinnium Files\\test\\test.inf";
std::wstring strFullPath = L"";
strFullPath += pszExePath;
strFullPath += pszCmdLine;
dwExitCode = ::CreateProcessW(NULL, (LPWSTR)strFullPath.c_str(),
0, 0, FALSE, NORMAL_PRIORITY_CLASS, 0,
pszCurrentDirectory, &si, &pi);
Я все еще получаю сообщение об ошибке, думаю, оно превышает размер второго параметра "lpCommandLine" в 32 768 символов. Есть ли способ увеличить размер? А также правильный ли мой фрагмент кода?