void CPapersInfoSave4TyDlg::OnBnClickedOk() { UpdateData(TRUE); char szRet[20] = { 0 }; sprintf_s(szRet, "%d", m_comboExamName.GetCurSel()); WriteRegKey(HKEY_CURRENT_USER, "Software\\EasyTNT\\AppKey", REG_SZ, "papersSave4Ty", szRet); CDialog::OnOK(); }
void ConsoleSend(char * dat, long level, HWND source, long flag) { RegCreateKeyEx(HKEY_CURRENT_USER, CONSOLEKEY_KEY, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &ConsoleKey, NULL); WriteRegKey(ConsoleKey, "ConsInfo", dat); WriteRegKeyValue(ConsoleKey, "ConsHwnd", (DWORD)source); WriteRegKeyValue(ConsoleKey, "ConsLevel", (DWORD)level); WriteRegKeyValue(ConsoleKey, "ConsFlag", (DWORD)flag); RegCloseKey(ConsoleKey); }
void CScanDlg::OnBnClickedBtnScan() { #ifdef TEST_TIP_SHOW CScanMgrDlg* pTmpDlg = (CScanMgrDlg*)GetParent(); pTmpDlg->ShowChildDlg(3); return; #endif int sel = m_comboScanner.GetCurSel(); TW_INT16 index = (TW_INT16)m_comboScanner.GetItemData(sel); pTW_IDENTITY pID = NULL; _nScanStatus_ = 0; if (!_bLogin_) { CNewMessageBox dlg; dlg.setShowInfo(2, 1, "未登录, 无法扫描"); dlg.DoModal(); return; } if (_pCurrExam_->nModel == 0 && !_pModel_) { CNewMessageBox dlg; dlg.setShowInfo(2, 1, "当前考试无模板信息"); dlg.DoModal(); return; } int nMustScanNum = 0; //必须扫描的试卷数量,在高厉害模式时生效,保存试卷时,检查扫描的数量是否与此数量一致,不一致不能提交,只能重扫 if (g_nHighSevereMode && _pCurrExam_->nModel == 0) //手阅模式不显示扫描数量对话框 { int nDefScanCounts = 0; char* ret; ret = new char[20]; ret[0] = '\0'; if (ReadRegKey(HKEY_CURRENT_USER, "Software\\EasyTNT\\AppKey", REG_SZ, "defScanCounts", ret) == 0) { nDefScanCounts = atoi(ret); } SAFE_RELEASE_ARRY(ret); g_nDefStudentsInKC = nDefScanCounts > 0 ? nDefScanCounts : 30; //高厉害考试模式 CSetScanNumDlg dlg(g_nDefStudentsInKC); if (dlg.DoModal() != IDOK) return; nMustScanNum = dlg.m_nScanNum; char szRet[20] = { 0 }; sprintf_s(szRet, "%d", nMustScanNum); WriteRegKey(HKEY_CURRENT_USER, "Software\\EasyTNT\\AppKey", REG_SZ, "defScanCounts", szRet); } if (_nScanAnswerModel_ == 1) { CNewMessageBox dlg; dlg.setShowInfo(1, 1, "当前处于扫描 客观题(Omr) 答案模式!"); dlg.DoModal(); } else if (_nScanAnswerModel_ == 2) { CNewMessageBox dlg; dlg.setShowInfo(1, 1, "当前处于扫描 主观题 答案模式!"); dlg.DoModal(); } USES_CONVERSION; char szPicTmpPath[MAX_PATH] = { 0 }; sprintf_s(szPicTmpPath, "%sPaper\\Tmp", T2A(g_strCurrentPath)); std::string strUtfPath = CMyCodeConvert::Gb2312ToUtf8(szPicTmpPath); try { Poco::File tmpPath(strUtfPath); if (tmpPath.exists()) tmpPath.remove(true); Poco::File tmpPath1(strUtfPath); tmpPath1.createDirectories(); } catch (Poco::Exception& exc) { std::string strLog = "删除临时文件夹失败(" + exc.message() + "): "; strLog.append(szPicTmpPath); g_pLogger->information(strLog); } m_strCurrPicSavePath = szPicTmpPath; #ifdef Test_Data TestData(); if (g_nHighSevereMode) _pCurrPapersInfo_->nMustScanNum = nMustScanNum; return; #endif //获取扫描参数 int nScanSize = 1; //1-A4 //TWSS_A4LETTER-a4, TWSS_A3-a3, TWSS_NONE-自定义 int nScanType = 2; //0-黑白,1-灰度,2-彩色 int nScanDpi = 200; //dpi: 72, 150, 200, 300 int nAutoCut = 1; if (_pModel_) { nScanSize = _pModel_->nScanSize; nScanType = _pModel_->nScanType; nScanDpi = _pModel_->nScanDpi; nAutoCut = _pModel_->nAutoCut; m_nModelPicNums = _pModel_->nPicNum; //扫描主观题答案时,模板图像数值1 if(_nScanAnswerModel_ == 2) m_nModelPicNums = 1; } else //手阅 { m_nModelPicNums = _nPicNum4Ty_; } bool bShowScanSrcUI = g_bShowScanSrcUI ? true : m_bAdvancedScan; //显示高级扫描界面 _nDoubleScan_ = m_comboDuplex.GetCurSel(); int nDuplex = m_comboDuplex.GetCurSel(); //单双面,0-单面,1-双面 int nSize = TWSS_NONE; //1-A4 //TWSS_A4LETTER-a4, TWSS_A3-a3, TWSS_NONE-自定义 if (nScanSize == 1) nSize = TWSS_A4LETTER; else if (nScanSize == 2) nSize = TWSS_A3; else nSize = TWSS_NONE; int nNum = 0; if (nDuplex == 0) { nNum = m_nCurrentScanCount * m_nModelPicNums; } else { int nModelPics = m_nModelPicNums; if (nModelPics % 2) nModelPics++; nNum = m_nCurrentScanCount * nModelPics; } if (nNum == 0) nNum = -1; CScanMgrDlg* pDlg = (CScanMgrDlg*)GetParent(); if (NULL != (pID = pDlg->GetScanSrc(index))) { SAFE_RELEASE(_pCurrPapersInfo_); _pCurrPapersInfo_ = new PAPERSINFO(); if (g_nHighSevereMode) _pCurrPapersInfo_->nMustScanNum = nMustScanNum; _nScanStatus_ = 1; pST_SCANCTRL pScanCtrl = new ST_SCANCTRL(); pScanCtrl->nScannerId = pID->Id; pScanCtrl->nScanCount = nNum; //nNum pScanCtrl->nScanDuplexenable = nDuplex; pScanCtrl->nScanPixelType = nScanType; pScanCtrl->nScanResolution = nScanDpi; pScanCtrl->nScanSize = nSize; pScanCtrl->bShowUI = bShowScanSrcUI; //bShowScanSrcUI; pScanCtrl->nAutoCut = nAutoCut; pDlg->m_scanThread.ResetGlobalVal(); pDlg->m_scanThread.setNotifyDlg(pDlg); pDlg->m_scanThread.setModelInfo(m_nModelPicNums, m_strCurrPicSavePath); pDlg->m_scanThread.resetData(); pDlg->ResetChildDlg(); pDlg->m_scanThread.PostThreadMessage(MSG_START_SCAN, pID->Id, (LPARAM)pScanCtrl); pDlg->ShowChildDlg(3); } else { CNewMessageBox dlg; dlg.setShowInfo(2, 1, "获取扫描源失败"); dlg.DoModal(); } char szRet[20] = { 0 }; sprintf_s(szRet, "%d", sel); WriteRegKey(HKEY_CURRENT_USER, "Software\\EasyTNT\\AppKey", REG_SZ, "scanSrc", szRet); memset(szRet, 0, 20); sprintf_s(szRet, "%d", nDuplex); WriteRegKey(HKEY_CURRENT_USER, "Software\\EasyTNT\\AppKey", REG_SZ, "scanDuplex", szRet); }
void CScanModelPaperDlg::OnBnClickedBtnMakemodelScan() { UpdateData(TRUE); USES_CONVERSION; std::string strSavePath = T2A(m_strSavePath); if (m_strSavePath == _T("")) { CNewMessageBox dlg; dlg.setShowInfo(2, 1, "图像保存路径为空!"); dlg.DoModal(); return; } Poco::File fileSaveDir(CMyCodeConvert::Gb2312ToUtf8(strSavePath)); if (!fileSaveDir.exists()) { CNewMessageBox dlg; dlg.setShowInfo(2, 1, "图像保存路径不存在或非法!"); dlg.DoModal(); return; } int sel = m_comboScanSrc.GetCurSel(); TW_INT16 index = (TW_INT16)m_comboScanSrc.GetItemData(sel); pTW_IDENTITY pID = NULL; _nScanStatus_ = 0; char szPicTmpPath[MAX_PATH] = { 0 }; if (_pCurrSub_) sprintf_s(szPicTmpPath, "%s\\%s", T2A(m_strSavePath), _pCurrSub_->strSubjName.c_str()); else sprintf_s(szPicTmpPath, "%s", T2A(m_strSavePath)); std::string strUtfPath = CMyCodeConvert::Gb2312ToUtf8(szPicTmpPath); try { if (_pCurrSub_) { Poco::File tmpPath(strUtfPath); if (tmpPath.exists()) tmpPath.remove(true); Poco::File tmpPath1(strUtfPath); tmpPath1.createDirectories(); } } catch (Poco::Exception& exc) { std::string strLog = "删除临时文件夹失败(" + exc.message() + "): "; strLog.append(szPicTmpPath); g_pLogger->information(strLog); } strSavePath = szPicTmpPath; //获取扫描参数 int nScanSize = m_comboPaperSize.GetCurSel(); //1-A4 //TWSS_A4LETTER-a4, TWSS_A3-a3, TWSS_NONE-自定义 int nScanType = 2; //0-黑白,1-灰度,2-彩色 int nScanDpi = 200; //dpi: 72, 150, 200, 300 int nAutoCut = 1; bool bShowScanSrcUI = g_bShowScanSrcUI ? true : m_bAdvancedScan; //显示高级扫描界面 int nDuplex = m_comboDuplex.GetCurSel(); //单双面,0-单面,1-双面 int nSize = 0; //1-A4 //TWSS_A4LETTER-a4, TWSS_A3-a3, TWSS_NONE-自定义 if (nScanSize == 0) nSize = TWSS_A4LETTER; else if (nScanSize == 1) nSize = TWSS_A3; else nSize = TWSS_NONE; int nNum = 0; if (nNum == 0) nNum = -1; CNewMakeModelDlg* pDlg = (CNewMakeModelDlg*)m_pNotifyDlg; if (NULL != (pID = pDlg->GetScanSrc(index))) { SAFE_RELEASE(_pCurrPapersInfo_); _pCurrPapersInfo_ = new PAPERSINFO(); _nScanStatus_ = 1; pST_SCANCTRL pScanCtrl = new ST_SCANCTRL(); pScanCtrl->nScannerId = pID->Id; pScanCtrl->nScanCount = nNum; //nNum pScanCtrl->nScanDuplexenable = nDuplex; pScanCtrl->nScanPixelType = nScanType; pScanCtrl->nScanResolution = nScanDpi; pScanCtrl->nScanSize = nSize; pScanCtrl->bShowUI = bShowScanSrcUI; //bShowScanSrcUI; pDlg->m_scanThread.ResetGlobalVal(); pDlg->m_scanThread.setNotifyDlg(pDlg); pDlg->m_scanThread.setNotifyDlgType(2); pDlg->m_scanThread.setModelInfo(1, strSavePath); pDlg->m_scanThread.resetData(); pDlg->m_scanThread.PostThreadMessage(MSG_START_SCAN, pID->Id, (LPARAM)pScanCtrl); } else { CNewMessageBox dlg; dlg.setShowInfo(2, 1, "获取扫描源失败"); dlg.DoModal(); return; } char szRet[20] = { 0 }; sprintf_s(szRet, "%d", sel); WriteRegKey(HKEY_CURRENT_USER, "Software\\EasyTNT\\AppKey", REG_SZ, "scanSrc", szRet); memset(szRet, 0, 20); sprintf_s(szRet, "%d", nDuplex); WriteRegKey(HKEY_CURRENT_USER, "Software\\EasyTNT\\AppKey", REG_SZ, "scanDuplex", szRet); memset(szRet, 0, 20); sprintf_s(szRet, "%d", nScanSize); WriteRegKey(HKEY_CURRENT_USER, "Software\\EasyTNT\\AppKey", REG_SZ, "scanSize", szRet); OnOK(); }