void CScanModelPaperDlg::InitUI() { m_bmpBtnClose.SetStateBitmap(IDB_Btn_MakeModel_CloseNormal, 0, IDB_Btn_MakeModel_CloseDown); m_bmpBtnScan.SetStateBitmap(IDB_Btn_MakeModel_Normal, 0, IDB_Btn_MakeModel_Down); m_bmpBtnScan.SetBtnTextColor(RGB(255, 255, 255), RGB(255, 255, 255), RGB(255, 255, 255), 0); m_comboScanSrc.AdjustDroppedWidth(); m_comboDuplex.AdjustDroppedWidth(); m_comboPaperSize.AdjustDroppedWidth(); int nSrc = 0; int nDuplex = 1; int nScanSize = 0; char* ret; ret = new char[20]; ret[0] = '\0'; if (ReadRegKey(HKEY_CURRENT_USER, "Software\\EasyTNT\\AppKey", REG_SZ, "scanSrc", ret) == 0) { nSrc = atoi(ret); } memset(ret, 0, 20); if (ReadRegKey(HKEY_CURRENT_USER, "Software\\EasyTNT\\AppKey", REG_SZ, "scanDuplex", ret) == 0) { nDuplex = atoi(ret); } memset(ret, 0, 20); if (ReadRegKey(HKEY_CURRENT_USER, "Software\\EasyTNT\\AppKey", REG_SZ, "scanSize", ret) == 0) { nScanSize = atoi(ret); } SAFE_RELEASE_ARRY(ret); if (nSrc >= m_comboScanSrc.GetCount()) nSrc = 0; m_comboScanSrc.SetCurSel(nSrc); m_comboDuplex.ResetContent(); m_comboDuplex.AddString(_T("单面扫描")); m_comboDuplex.AddString(_T("双面扫描")); m_comboDuplex.SetCurSel(nDuplex); m_comboPaperSize.ResetContent(); m_comboPaperSize.AddString(_T("A4类型")); m_comboPaperSize.AddString(_T("A3类型")); m_comboPaperSize.SetCurSel(nScanSize); ((CButton*)GetDlgItem(IDC_CHK_MakeModel_Advance))->SetCheck(m_bAdvancedScan); }
char * HERMES_GaiaCOM_Receive() { static char dat[1024]; RegCreateKeyEx(HKEY_CURRENT_USER, COMKEY_KEY, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &ComKey, NULL); ReadRegKey(ComKey, "ComInfo", dat, 512, ""); RegCloseKey(ComKey); return dat; }
void CScanDlg::InitUI() { // InitScanner(); int nSrc = 0; int nDuplex = 1; char* ret; ret = new char[20]; ret[0] = '\0'; if (ReadRegKey(HKEY_CURRENT_USER, "Software\\EasyTNT\\AppKey", REG_SZ, "scanSrc", ret) == 0) { nSrc = atoi(ret); } memset(ret, 0, 20); if (ReadRegKey(HKEY_CURRENT_USER, "Software\\EasyTNT\\AppKey", REG_SZ, "scanDuplex", ret) == 0) { nDuplex = atoi(ret); } SAFE_RELEASE_ARRY(ret); if (nSrc >= m_comboScanner.GetCount()) nSrc = 0; m_comboScanner.SetCurSel(nSrc); m_comboDuplex.ResetContent(); m_comboDuplex.AddString(_T("单面扫描")); m_comboDuplex.AddString(_T("双面扫描")); m_comboDuplex.SetCurSel(nDuplex); ((CButton*)GetDlgItem(IDC_CHK_AdvanceScan))->SetCheck(m_bAdvancedScan); //pic m_bmpBk.DeleteObject(); m_bmpBk.LoadBitmap(IDB_Main_Bk); m_bmpBtnScan.SetStateBitmap(IDB_ScanMgr_StartScanBtn, 0, IDB_ScanMgr_StartScanBtn_Hover); m_bmpBtnPapersInput.SetStateBitmap(IDB_ScanMgr_StartScanBtn, 0, IDB_ScanMgr_StartScanBtn_Hover); #ifdef TEST_PAPERS_INPUT m_bmpBtnPapersInput.ShowWindow(SW_SHOW); #endif }
// CPapersInfoSave4TyDlg 消息处理程序 BOOL CPapersInfoSave4TyDlg::OnInitDialog() { CDialog::OnInitDialog(); USES_CONVERSION; int nItem = 0; char* ret; ret = new char[20]; ret[0] = '\0'; if (ReadRegKey(HKEY_CURRENT_USER, "Software\\EasyTNT\\AppKey", REG_SZ, "papersSave4Ty", ret) == 0) { nItem = atoi(ret); } SAFE_RELEASE_ARRY(ret); EXAM_LIST::iterator itExam = g_lExamList.begin(); for (int i = 0; itExam != g_lExamList.end(); itExam++, i++) { CString strName = A2T(itExam->strExamName.c_str()); int nCount = m_comboExamName.GetCount(); m_comboExamName.InsertString(nCount, strName); m_comboExamName.SetItemDataPtr(nCount, (void*)&(*itExam)); if (nItem == i) { m_strExamID = itExam->strExamID.c_str(); } } if (m_comboExamName.GetCount() > nItem) m_comboExamName.SetCurSel(nItem); UpdateData(FALSE); return TRUE; }
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); }