⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 set.cpp

📁 对教之初考试系统的破解,此系统采用DLL方式
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// Set.cpp : 实现文件
//

#include "stdafx.h"
#include "KYPCJXExamCrkDll.h"
#include "Set.h"
#include ".\set.h"


// CSet 对话框


IMPLEMENT_DYNAMIC(CSet, CDialog)
CSet::CSet(CWnd* pParent /*=NULL*/)
	: CDialog(CSet::IDD, pParent)
{
}

CSet::~CSet()
{
}

void CSet::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_CHOOSE, m_choose);
	DDX_Control(pDX, IDC_MCHOOSE, m_mchoose);
	DDX_Control(pDX, IDC_JUDGE, m_judge);
	DDX_Control(pDX, IDC_FILL, m_fill);
	DDX_Control(pDX, IDC_TYPED, m_typed);
	DDX_Control(pDX, IDC_AUTOBOOT, m_autoboot);
	DDX_Control(pDX, IDC_LOOKWINDOWTEXT, m_lookwindowtext);
	DDX_Control(pDX, IDC_AUTOSECAND, m_autosecand);
	DDX_Control(pDX, IDC_SECAND, m_secand);
	DDX_Control(pDX, IDC_SAVEALLESC, m_saveallesc);
	DDX_Control(pDX, IDC_SAVEALLMIN, m_saveallmin);
	DDX_Control(pDX, IDC_COUNTNUMBER, m_countnumber);
	DDX_Control(pDX, IDC_NUMBER, m_number);
}


BEGIN_MESSAGE_MAP(CSet, CDialog)
	ON_BN_CLICKED(IDOK, OnBnClickedOk)
	ON_BN_CLICKED(IDCANCEL, OnBnClickedCancel)
	ON_BN_CLICKED(IDC_SAVE, OnBnClickedSave)
	ON_BN_CLICKED(IDC_BROWSE, OnBnClickedBrowse)
	ON_BN_CLICKED(IDC_LOOKWINDOWTEXT, OnBnClickedLookwindowtext)
	ON_BN_CLICKED(IDC_AUTOSECAND, OnBnClickedAutosecand)
	ON_BN_CLICKED(IDC_STUDATABROWSE, OnBnClickedStudatabrowse)
	ON_BN_CLICKED(IDC_DATABASEBROWSE, OnBnClickedDatabasebrowse)
	ON_BN_CLICKED(IDC_COUNTNUMBER, OnBnClickedCountnumber)
	ON_BN_CLICKED(IDC_SERVEREXEBROWSE, OnBnClickedServerexebrowse)
END_MESSAGE_MAP()


// CSet 消息处理程序

void CSet::OnBnClickedOk()
{
	// TODO: 在此添加控件通知处理程序代码
	OnOK();
}

void CSet::OnBnClickedCancel()
{
	// TODO: 在此添加控件通知处理程序代码
	OnCancel();
}

BOOL CSet::OnInitDialog()
{
	CDialog::OnInitDialog();

	CString str;
	for(int n=3;n<=15;n++)
	{
		str.Format("%d",n);
		m_secand.AddString(str);
	}
	for(int n=1;n<=180;n++)
	{
		str.Format("%d",n);
		m_number.AddString(str);
	}
	SetDlgItemText(IDC_SERVEREXEPATH,ReadRegeditPath("info0"));
	SetDlgItemText(IDC_TESTPATH,ReadRegeditPath("info1"));
	SetDlgItemText(IDC_STUDATAPATH,ReadRegeditPath("info2"));
	SetDlgItemText(IDC_USERNAME,ReadRegeditPath("info3"));
	SetDlgItemText(IDC_USERPASSWORD,ReadRegeditPath("info4"));
	SetDlgItemText(IDC_USERPASSWORD1,ReadRegeditPath("info4"));
	m_autoboot.SetCheck(atoi(ReadRegeditPath("info5")));
	m_lookwindowtext.SetCheck(atoi(ReadRegeditPath("info6")));
	m_countnumber.SetCheck(atoi(ReadRegeditPath("info7")));
	if(m_countnumber.GetCheck()==0)
		m_number.EnableWindow(0);
	else
		m_number.SetCurSel(m_number.FindString(0,ReadRegeditPath("info8")));
	m_autosecand.SetCheck(atoi(ReadRegeditPath("info9")));
	if(m_autosecand.GetCheck()==0)
		m_secand.EnableWindow(0);
	else
		m_secand.SetCurSel(m_secand.FindString(0,ReadRegeditPath("info10")));
	m_saveallesc.SetCheck(atoi(ReadRegeditPath("info11")));
	m_saveallmin.SetCheck(atoi(ReadRegeditPath("info12")));
	m_choose.SetCheck(atoi(ReadRegeditPath("info13")));
	m_mchoose.SetCheck(atoi(ReadRegeditPath("info14")));
	m_judge.SetCheck(atoi(ReadRegeditPath("info15")));
	m_fill.SetCheck(atoi(ReadRegeditPath("info16")));
	m_typed.SetCheck(atoi(ReadRegeditPath("info17")));
	SetDlgItemText(IDC_MDBPATH,ReadRegeditPath("info18"));
	SetDlgItemText(IDC_MDBVER,ReadRegeditPath("info19"));
	SetDlgItemText(IDC_MDBPASSWORD,ReadRegeditPath("info20"));

	return TRUE;
}

void CSet::OnBnClickedSave()
{
	CStringArray regtext;
	CString str(_T(""));
	GetDlgItemText(IDC_SERVEREXEPATH,str);
	if(str.IsEmpty())
	{
		AfxMessageBox("信息未填写完整!");
		GotoDlgCtrl(GetDlgItem(IDC_SERVEREXEBROWSE));
		regtext.RemoveAll();
		return;
	}
	else
		regtext.Add(str);
	str=_T("");
	GetDlgItemText(IDC_TESTPATH,str);
	if(str.IsEmpty())
	{
		AfxMessageBox("信息未填写完整!");
		GotoDlgCtrl(GetDlgItem(IDC_BROWSE));
		regtext.RemoveAll();
		return;
	}
	else
		regtext.Add(str);
	CString studatastr(_T(""));
	GetDlgItemText(IDC_STUDATAPATH,studatastr);
	if(studatastr.IsEmpty())
	{
		AfxMessageBox("信息未填写完整!");
		GotoDlgCtrl(GetDlgItem(IDC_STUDATABROWSE));
		regtext.RemoveAll();
		return;
	}
	else
		regtext.Add(studatastr);
	if(str.MakeLower()==studatastr.MakeLower())
	{
		AfxMessageBox("服务端学生数据主目录与客户端学生数据主目录不能相同!");
		GotoDlgCtrl(GetDlgItem(IDC_BROWSE));
		regtext.RemoveAll();
		return;
	}
	str=_T("");
	GetDlgItemText(IDC_USERNAME,str);
	if(str.IsEmpty())
	{
		AfxMessageBox("信息未填写完整!");
		GotoDlgCtrl(GetDlgItem(IDC_USERNAME));
		regtext.RemoveAll();
		return;
	}
	else
		regtext.Add(str);
	CString str1(_T(""));
	GetDlgItemText(IDC_USERPASSWORD1,str1);
	str=_T("");
	GetDlgItemText(IDC_USERPASSWORD,str);
	if(str!=str1)
	{
		AfxMessageBox("两次密码不一致!");
		GotoDlgCtrl(GetDlgItem(IDC_USERPASSWORD));
		regtext.RemoveAll();
		return;
	}
	if(str.IsEmpty())
	{
		AfxMessageBox("信息未填写完整!");
		GotoDlgCtrl(GetDlgItem(IDC_USERPASSWORD));
		regtext.RemoveAll();
		return;
	}
	else
		regtext.Add(str);
	if(m_autoboot.GetCheck())
		regtext.Add("1");
	else
		regtext.Add("0");
	if(m_lookwindowtext.GetCheck())
		regtext.Add("1");
	else
		regtext.Add("0");
	if(m_countnumber.GetCheck())
	{
		regtext.Add("1");
		CString se(_T(""));
		if(m_number.GetCurSel()>=0)
		{
			m_number.GetLBText(m_number.GetCurSel(),se);
			regtext.Add(se);
		}
		else
		{
			AfxMessageBox("信息未填写完整!");
			GotoDlgCtrl(GetDlgItem(IDC_NUMBER));
			regtext.RemoveAll();
			return;
		}
	}
	else
	{
		regtext.Add("0");
		regtext.Add("0");
	}
	if(m_autosecand.GetCheck())
	{
		regtext.Add("1");
		CString se(_T(""));
		if(m_secand.GetCurSel()>=0)
		{
			m_secand.GetLBText(m_secand.GetCurSel(),se);
			regtext.Add(se);
		}
		else
		{
			AfxMessageBox("信息未填写完整!");
			GotoDlgCtrl(GetDlgItem(IDC_SECAND));
			regtext.RemoveAll();
			return;
		}
	}
	else
	{
		regtext.Add("0");
		regtext.Add("0");
	}
	if(m_saveallesc.GetCheck())
		regtext.Add("1");
	else
		regtext.Add("0");
	if(m_saveallmin.GetCheck())
		regtext.Add("1");
	else
		regtext.Add("0");
	if(m_lookwindowtext.GetCheck()+m_countnumber.GetCheck()+m_autosecand.GetCheck()<1)
	{
		AfxMessageBox("至少选择一种CRK方式,否则不能完成应有功能!");
		regtext.RemoveAll();
		return;
	}
	if(m_choose.GetCheck()+m_mchoose.GetCheck()+m_judge.GetCheck()+m_fill.GetCheck()+m_typed.GetCheck()<1)
	{
		AfxMessageBox("至少选择一个CRK选项,否则不能完成应有功能!");
		regtext.RemoveAll();
		return;
	}
	if(m_choose.GetCheck())
		regtext.Add("1");
	else
		regtext.Add("0");
	if(m_mchoose.GetCheck())
		regtext.Add("1");
	else
		regtext.Add("0");
	if(m_judge.GetCheck())
		regtext.Add("1");
	else
		regtext.Add("0");
	if(m_fill.GetCheck())
		regtext.Add("1");
	else
		regtext.Add("0");
	if(m_typed.GetCheck())
		regtext.Add("1");
	else
		regtext.Add("0");
	str=_T("");
	GetDlgItemText(IDC_MDBPATH,str);
	if(str.IsEmpty())
	{
		AfxMessageBox("信息未填写完整!");
		GotoDlgCtrl(GetDlgItem(IDC_MDBPATH));
		regtext.RemoveAll();
		return;
	}
	else
		regtext.Add(str);
	str=_T("");
	GetDlgItemText(IDC_MDBVER,str);
	if(str.IsEmpty())
	{
		AfxMessageBox("MDB文件出错!");
		GotoDlgCtrl(GetDlgItem(IDC_DATABASEBROWSE));
		regtext.RemoveAll();
		return;
	}
	else
		regtext.Add(str);
	str=_T("");
	GetDlgItemText(IDC_MDBPASSWORD,str);
	regtext.Add(str);
	//检查信息是否填写完整
	CRegKey  regKey;
	LONG lRet=regKey.Open(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\KYPCJXExamCrk\\");
	if(lRet!=ERROR_SUCCESS)
	{
		regKey.Open(HKEY_LOCAL_MACHINE,"Software");
		lRet=regKey.Create(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\KYPCJXExamCrk\\");
	}
	//写注册表
	int x=(int)regtext.GetCount();
	CString message(_T(""));
	for(int n=0;n<x;n++)
	{
		message.Format("info%d",n);
		regKey.SetValue(regtext[n],message);
	}
	regKey.Close();
	regtext.RemoveAll();
	if(atoi(ReadRegeditPath("info11")))
		OnCancel();
}

void CSet::OnBnClickedBrowse()
{
	CString path=GetBrowsePath();
	if(!path.IsEmpty())
	{
		SetDlgItemText(IDC_TESTPATH,path);
	}
}

void CSet::OnBnClickedStudatabrowse()
{
	CString path=GetBrowsePath();
	if(!path.IsEmpty())
	{
		SetDlgItemText(IDC_STUDATAPATH,path);
	}
}

CString CSet::GetBrowsePath()
{
	CString m_path(_T(""));
	LPMALLOC lpMalloc;
	CHAR szDisplayName[MAX_PATH];
	CHAR szBuffer[MAX_PATH];
	if ( ::SHGetMalloc( &lpMalloc ) != NOERROR )
	{
		AfxMessageBox( "执行路径错误,请退出后重试!" );
		return CString();
	}
	BROWSEINFO BrowseInfo;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -