(C++棘手问题)我想传递参数调用exe,采用的是SHELLEXECUTEINFO,要传递的参数有好几个,保存在一个文件里面,请问大牛们
SHELLEXECUTEINFO中lpParameters应该怎么设置呢?就是说根据我的情况,lpParameters应该赋什么值?自己最近看了不少SHELLEXECUTEINFO的用法,但是都没找到我这个情况。
如果
proc.StartInfo.FileName = Path.Combine(Server.MapPath("/"), "Office2Pdf.exe");
proc.StartInfo.Arguments = string.Format("{0} {1}", officePath, pdfPath);
那么C++里面参数应该是
ShellInfo.lpParameters = _T("\"Office文档所在的路径\" \"输出文件路径\");
注意加上\",因为路径可能有空格。
lpParameters
可选。运行/打开程序的参数,如果打开的是一个文档,则该项无效
SHELLEXECUTEINFO ShellInfo;
memset(&ShellInfo, 0, sizeof(ShellInfo));
ShellInfo.cbSize = sizeof(ShellInfo);
ShellInfo.hwnd = NULL;
ShellInfo.lpVerb = _T("open");
ShellInfo.lpFile = _T("D:\\test\\ShellExecuteEx\\debug\\image.exe"); // 此处写执行文件的绝对路径
ShellInfo.lpParameters = _T("D:\\a.txt D:\\b.txt");
ShellInfo.nShow = SW_SHOWNORMAL;
ShellInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
BOOL bResult = ShellExecuteEx(&ShellInfo);
看你的exe的定义。比如说word /p 文件名,可以打开文件,并打印。cmd /k,这个参数可以在调用了命令后保持窗口打开。不同的exe有不同的参数。