📄 set.cpp
字号:
// 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 + -