Пример #1
0
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();
}
Пример #2
0
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);
}
Пример #3
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);
}
Пример #4
0
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();
}