📄 ckeymanage.cpp
字号:
// Ckeymanage.cpp : implementation file
//
#include "stdafx.h"
#include "bishe.h"
#include "Ckeymanage.h"
#include <afxdb.h>
#include "Usefulkey.h"
#include "Delkey.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCkeymanage dialog
CCkeymanage::CCkeymanage(CWnd* pParent /*=NULL*/)
: CDialog(CCkeymanage::IDD, pParent)
{
//{{AFX_DATA_INIT(CCkeymanage)
//}}AFX_DATA_INIT
}
void CCkeymanage::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCkeymanage)
DDX_Control(pDX, IDC_CTRLLIST2, m_ctrlList1);
DDX_Control(pDX, IDC_CTRLLIST, m_ctrlList);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCkeymanage, CDialog)
//{{AFX_MSG_MAP(CCkeymanage)
ON_BN_CLICKED(IDC_SEARCHUSE_BUTTON1, OnSearchuseButton1)
ON_BN_CLICKED(IDC_SEARCHDEL_BUTTON1, OnSearchdelButton1)
ON_BN_CLICKED(IDC_DELKEYVIEW_BUTTON4, OnDelkeyviewButton4)
ON_BN_CLICKED(IDC_COPY_BUTTON3, OnCopyButton3)
ON_BN_CLICKED(IDC_DELKEY_BUTTON3, OnDelkeyButton3)
ON_BN_CLICKED(IDC_exit_BUTTON1, OnexitBUTTON1)
ON_BN_CLICKED(IDC_ASS_BUTTON2, OnAssButton2)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCkeymanage message handlers
void CCkeymanage::OnSearchuseButton1()
{
// TODO: Add your control notification handler code here
CString name;
GetDlgItemText(IDC_USERNAME_EDIT1,name);
UpdateData();//获得用户输入的数据
if(name=="")
{
MessageBox("未输入姓名!","Error",MB_OK);
return;
}
CDatabase m_uDatabase;
CUsefulkey m_use(&m_uDatabase);
CString m_uRecordSet=(_T("[usefulkey]"));
m_uRecordSet.Format("select * from usefulkey where username='%s'",name);
if(!m_use.Open(AFX_DB_USE_DEFAULT_TYPE,m_uRecordSet))
{
MessageBox("打开数据库失败!","数据库错误!",MB_OK);
return;
}
m_ctrlList.SetExtendedStyle(LVS_EX_FULLROWSELECT| LVS_EX_GRIDLINES);//选择一行全部信息||布置网格
m_ctrlList.DeleteAllItems();//清除ctrlList中的所有条款
int i=0;
while(m_ctrlList.DeleteColumn(0));
{
m_ctrlList.InsertColumn(10,"username",LVCFMT_LEFT,60,10);
m_ctrlList.InsertColumn(10,"keydate",LVCFMT_LEFT,40,10);
m_ctrlList.InsertColumn(10,"dk",LVCFMT_LEFT,40,10);
m_ctrlList.InsertColumn(10,"cer",LVCFMT_LEFT,80,10);
int column;
if(m_use.GetRecordCount()!=0)//查到的纪录不空
{
while(!m_use.IsEOF())//还未到最后一条记录
{
column=1;
m_ctrlList.InsertItem(i,m_use.m_username);//数据库有多少条记录就添加多少次
m_ctrlList.SetItemText(i,column++,m_use.m_keydate);
m_ctrlList.SetItemText(i,column++,m_use.m_dk);
m_ctrlList.SetItemText(i,column++,m_use.m_cer);
i++;
m_use.MoveNext();//指向下一条记录
}
m_uDatabase.Close();
}
if(i==0)
{
MessageBox("有效密钥数据库没有此记录!","Error",MB_OK);
return;
}
}
}
void CCkeymanage::OnSearchdelButton1()
{
// TODO: Add your control notification handler code here
CString name;
GetDlgItemText(IDC_USERNAME_EDIT1,name);
UpdateData();//获得用户输入的数据
if(name=="")
{
MessageBox("未输入姓名!","Error",MB_OK);
return;
}
CDatabase m_dDatabase;
CDelkey m_del(&m_dDatabase);
CString m_dRecordSet=(_T("[delkey]"));
m_dRecordSet.Format("select * from delkey where username='%s'",name);
if(!m_del.Open(AFX_DB_USE_DEFAULT_TYPE,m_dRecordSet))
{
MessageBox("打开数据库失败!","数据库错误!",MB_OK);
return;
}
m_ctrlList1.SetExtendedStyle(LVS_EX_FULLROWSELECT| LVS_EX_GRIDLINES);//选择一行全部信息||布置网格
m_ctrlList1.DeleteAllItems();//清除ctrlList中的所有条款
int i=0;
while(m_ctrlList1.DeleteColumn(0));
{
m_ctrlList1.InsertColumn(10,"username",LVCFMT_LEFT,60,10);
m_ctrlList1.InsertColumn(10,"keydate",LVCFMT_LEFT,40,10);
m_ctrlList1.InsertColumn(10,"dk",LVCFMT_LEFT,40,10);
m_ctrlList1.InsertColumn(10,"cer",LVCFMT_LEFT,80,10);
int column;
if(m_del.GetRecordCount()!=0)//查到的纪录不空
{
while(!m_del.IsEOF())//还未到最后一条记录
{
column=1;
m_ctrlList1.InsertItem(i,m_del.m_username);//数据库有多少条记录就添加多少次
m_ctrlList1.SetItemText(i,column++,m_del.m_keydate);
m_ctrlList1.SetItemText(i,column++,m_del.m_dk);
m_ctrlList1.SetItemText(i,column++,m_del.m_cer);
i++;
m_del.MoveNext();//指向下一条记录
}
m_dDatabase.Close();
}
if(i==0)
{
MessageBox("无效密钥数据库没有此记录!","Error",MB_OK);
return;
}
}
}
void CCkeymanage::OnDelkeyviewButton4()
{
// TODO: Add your control notification handler code here
CDatabase m_dDatabase;
CDelkey m_del(&m_dDatabase);
CString m_dRecordSet=( _T("[delkey]"));
m_del.Open(AFX_DB_USE_DEFAULT_TYPE,m_dRecordSet);
int i=0;
int column;
m_ctrlList1.SetExtendedStyle(LVS_EX_FULLROWSELECT| LVS_EX_GRIDLINES);//选择一行全部信息||布置网格
m_ctrlList1.DeleteAllItems();//清除ctrlList中的所有条款
while(m_ctrlList1.DeleteColumn(0));
{
m_ctrlList1.InsertColumn(10,"username",LVCFMT_LEFT,60,10);
m_ctrlList1.InsertColumn(10,"keydate",LVCFMT_LEFT,40,10);
m_ctrlList1.InsertColumn(10,"dk",LVCFMT_LEFT,40,10);
m_ctrlList1.InsertColumn(10,"cer",LVCFMT_LEFT,80,10);
while(!m_del.IsEOF())//还未到最后一条记录
{
column=1;
m_ctrlList1.InsertItem(i,m_del.m_username);//数据库有多少条记录就添加多少次
m_ctrlList1.SetItemText(i,column++,m_del.m_keydate);
m_ctrlList1.SetItemText(i,column++,m_del.m_dk);
m_ctrlList1.SetItemText(i,column++,m_del.m_cer);
i++;
m_del.MoveNext();//指向下一条记录
}
m_dDatabase.Close();
}
if(i==0)
{
MessageBox("没有记录!","Error",MB_OK);
return;
}
}
void CCkeymanage::OnCopyButton3()
{
// TODO: Add your control notification handler code here
if(MessageBox("您确定要备份数据库吗?","提示",MB_YESNO|MB_ICONINFORMATION)==IDNO)
{
return;
}
if(CopyFile("usefulkey.mdb","backup\\usefulkey.bak",FALSE))
AfxMessageBox("有效密钥数据库备份成功!");
else
AfxMessageBox("有效密钥数据库备份失败!");
if(CopyFile("delkey.mdb","backup\\delkey.bak",FALSE))
AfxMessageBox("无效密钥数据库备份成功!");
else
AfxMessageBox("无效密钥数据库备份失败!");
}
void CCkeymanage::OnDelkeyButton3()
{
// TODO: Add your control notification handler code here
CString name;
GetDlgItemText(IDC_USERNAME_EDIT1,name);
UpdateData();
if(name=="")
{
MessageBox("未输入要删除的姓名!","Error",MB_OK);
return;
}
CDatabase m_uDatabase,m_dDatabase;
CUsefulkey m_use(&m_uDatabase);
CDelkey m_del(&m_dDatabase);
CString m_uRecordSet=(_T("[usefulkey]"));
CString m_dRecordSet=( _T("[delkey]"));
m_uRecordSet.Format("select * from usefulkey where username='%s'",name);
if(!m_use.Open(AFX_DB_USE_DEFAULT_TYPE,m_uRecordSet))
{
MessageBox("打开数据库失败!","数据库错误!",MB_OK);
return;
}
//将用户删除的密钥保存到无效数据库
m_del.Open(AFX_DB_USE_DEFAULT_TYPE,m_dRecordSet);
m_del.AddNew();
m_del.m_username=m_use.m_username;
m_del.m_dk=m_use.m_dk;
m_del.m_cer=m_use.m_cer;
m_del.m_keydate=m_use.m_keydate;
m_del.Update();//更新数据库
m_dDatabase.Close();
m_use.Delete();//执行删除操作
AfxMessageBox("数据删除成功并存入无效数据库!");
m_uDatabase.Close();
UpdateData(FALSE);
}
void CCkeymanage::OnexitBUTTON1()
{
// TODO: Add your control notification handler code here
OnCancel();
}
void CCkeymanage::OnAssButton2()
{
// TODO: Add your control notification handler code here
CString name;
GetDlgItemText(IDC_USERNAME_EDIT1,name);//获得申请者的姓名
UpdateData();
CDatabase m_uDatabase;
CUsefulkey m_use(&m_uDatabase);
CString m_uRecordSet=(_T("[usefulkey]"));
m_uRecordSet.Format("select * from usefulkey where username='%s'",name);
if(!m_use.Open(AFX_DB_USE_DEFAULT_TYPE,m_uRecordSet))
{
MessageBox("打开数据库失败!","数据库错误!",MB_OK);
return;
}
if(name=="")
{
MessageBox("请先输入您想获得的密钥的用户名!");
return;
}
if(m_use.GetRecordCount()==0)
{
MessageBox("没有此用户的记录!","Error",MB_OK);
return;
}
char dir[MAX_PATH], srdir[MAX_PATH];
strcpy(dir, "search\\");
strcat(dir, name);
strcat(dir, ".cer");
strcpy(srdir, "Certification\\");
strcat(srdir, name);
strcat(srdir, ".cer");
if(!CopyFile(srdir, dir, FALSE))
{
MessageBox("发生错误!");
return;
}
memset(dir, 0, MAX_PATH);
GetCurrentDirectory(MAX_PATH, dir);
strcat(dir, "\\search\\");
strcat(dir, name);
strcat(dir, ".cer");
char msg[200];
wsprintf(msg, "%s%s", "您所需要的证书放在:", dir);
MessageBox(msg);
m_uDatabase.Close();
UpdateData(FALSE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -