我正在尝试使用以下代码启动通过 install-shield 制作的 setup.exe
DWORD ChildProcess(LPCSTR exePath, LPCSTR lpCmdLine ,BOOL showDialog, char* workingDir, BOOL bParentWait )
{
CWnd * handle = AfxGetMainWnd (); //handle to the main dialog box of mfc application
DWORD dwExitCode = -1;
SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.lpVerb = "open";
ShExecInfo.lpFile = exePath; //setup.exe path, installer exe
if(bParentWait)
{
ShExecInfo.lpParameters = lpCmdLine;
ShExecInfo.nShow = SW_MINIMIZE;
}
else
{
ShExecInfo.nShow = SW_SHOW;
ShExecInfo.lpParameters = NULL;
}
ShExecInfo.lpDirectory = workingDir;
ShExecInfo.hInstApp = NULL;
if (ShellExecuteEx(&ShExecInfo))
{
if(bParentWait)
{
handle->ShowWindow(SW_MINIMIZE);
WaitForSingleObject(ShExecInfo.hProcess,INFINITE);
if(showDialog){
handle->ShowWindow(SW_RESTORE);
}
GetExitCodeProcess(ShExecInfo.hProcess, &dwExitCode);
}
else
{
CloseHandle(ShExecInfo.hProcess);
dwExitCode = 0;
}
}
return dwExitCode;
}
问题是启动的安装程序窗口没有出现在顶部。任何帮助将不胜感激。
谢谢