无法通过ShellExecuteEx()将参数发送到cmd.exe

时间:2014-03-02 06:52:42

标签: c++ mfc 7zip 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-command line \ 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 个答案:

没有答案