//
// 转换核心
//
BOOL CDocToSwfDlg::Convert(CString strToolPath, CString strSourcePath, CString strTargetPath)
{
BOOL bResult = FALSE;
CString szCmdline = _T(" /"") + strSourcePath + _T("/" -o /"") + strTargetPath + _T("/"");
STARTUPINFO StartupInfo; //This is an [in] parameter
CString strFlashPaper = CConfigPro::GetConfigValue(_T("Config"), _T("EXEProName"));
CString strKillPro = CConfigPro::GetConfigValue(_T("Config"), _T("KillProcess"));
CStringArray arrayKillPro;
BOOL bIsExist = CProcessPro::IsProcessRun(strFlashPaper);
BOOL bIsKill = FALSE;
CCStringPro::SplitString(strKillPro, _T("="), arrayKillPro);
// 判断FlashPrinter.exe是否运行
while(bIsExist)
{
Sleep(4000);
bIsExist = CProcessPro::IsProcessRun(strFlashPaper);
}
bIsKill = CProcessPro::IsProcessRun(arrayKillPro);
while(bIsKill)
{
Sleep(2000);
// 关闭所有有关进程
CProcessPro::KillProcess(arrayKillPro);
bIsKill = CProcessPro::IsProcessRun(strFlashPaper);
}
ZeroMemory(&StartupInfo, sizeof(StartupInfo));
StartupInfo.cb = sizeof StartupInfo ; //Only compulsory field
if( !CreateProcess(strToolPath, (LPWSTR)(LPCTSTR)szCmdline, NULL, NULL, FALSE, 0, NULL, NULL, &StartupInfo, &mProcessInfo))
{
MessageBox(_T("CreateProcess failed."));
return bResult;
}
bResult = TRUE;
return bResult;
}