예제 #1
0
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);
}
예제 #2
0
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;
}
예제 #3
0
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
}
예제 #4
0
// 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;
}
예제 #5
0
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);
}