Невозможно отправить параметры в cmd.exe через ShellExecuteEx ()

Я хочу, чтобы моя программа MFC-C ++ открыла cmd.exe и запустила 7-zip в командной строке, которая принимает несколько параметров.

    SHELLEXECUTEINFO ShRun = {0};
ShRun.cbSize = sizeof(SHELLEXECUTEINFO);
ShRun.fMask = SEE_MASK_NOCLOSEPROCESS;
ShRun.hwnd = NULL;
ShRun.lpVerb = NULL;
ShRun.lpFile = _T("c:\\windows\\System32\\cmd.exe");
ShRun.lpParameters = _T("C:\\tmp\\7zip-command line\\7za920\\7za e C:\cpp\zipping\*.tar *.png -r -o"C:\tmp\7zip-command line\7za920"");
ShRun.lpDirectory = _T("c:\\windows\\System32");
ShRun.nShow = SW_SHOW;
ShRun.hInstApp = NULL;

// Execute the file with the parameters
if (!ShellExecuteEx(&ShRun))
{
MessageBox(_T("Unable to open file!"));
}

Если я просто выполню
«C: \ tmp \ 7zip-командная строка \ 7za920 \ 7za» e C: \ cpp \ zipping * .tar *.
png -r -o «C: \ tmp \ 7zip-command line \ 7za920», вставив его в командное окно, он работает нормально. Но я не могу выполнить то же самое через мою программу.
Обратите внимание, что версия 7-zip для командной строки «7za.exe» находится в пути к папке «C: \ tmp \ 7zip-command line \ 7za920». Я также хотел бы знать, правильно ли я принял решение использовать ShellExecuteEx () вместо CreateProcess () и есть ли другой способ решить мою проблему. Пожалуйста, дайте мне знать.
Заранее спасибо.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …