MFC ShellExecuteEx 不能调用 msi文件,该怎么处理

MFC ShellExecuteEx 不能调用 msi文件
上代码:

SHELLEXECUTEINFO  ShExecInfo  =  {0};  
ShExecInfo.cbSize  =  sizeof(SHELLEXECUTEINFO);  
ShExecInfo.fMask  =  SEE_MASK_NOCLOSEPROCESS;  
ShExecInfo.hwnd  =  NULL;  
ShExecInfo.lpVerb  =  _T("open");  
ShExecInfo.lpFile  =  _T("快播_5.19.211.EXE");       
// ShExecInfo.lpFile  =  _T("mysql-installer-community-5.6.10.1.msi");   
ShExecInfo.lpParameters  =  _T("-f train");              
ShExecInfo.lpDirectory  =  NULL;  
ShExecInfo.nShow  =  SW_SHOW;  
ShExecInfo.hInstApp  =  NULL;              
ShellExecuteEx(&ShExecInfo); 
BeginWaitCursor();
WaitForSingleObject(ShExecInfo.hProcess,INFINITE);
EndWaitCursor();


这段代码是是能够成功的安装快播的,但是就是运行中间的那个 msi的时候,程序弹出一个对话框,里面是各种文字(安装的说明啊啥的),但是点击下面的确定后,没有任何反应。

为毛不能  .exe 就能安装, .msi就不能安装呢??

那怎么才能安装 .msi文件呢?
------解决方案--------------------
“MSI文件是Windows Installer的数据包,它实际上是一个数据库,包含安装一种产品所需要的信息和在很多安装情形下安装(和卸载)程序所需的指令和数据。”
------解决方案--------------------
使用msiexec来安装msi文件。直接在命令行里运行msiexec,会有使用说明。
------解决方案--------------------
就是说,你传的参数不对,所以他弹出一个框告诉你应该传什么参数
如果你传对了,就能跑起来了
------解决方案--------------------
用system试试。