📄 usermanage.cpp
字号:
// UserManage.cpp : implementation file
//
#include "stdafx.h"
#include "fert2000.h"
#include "UserManage.h"
#include "ChangePassword.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern int SetNtRegValue(LPCTSTR lpszSection,LPCTSTR lpszEntry,void *nValue,int WriteSize);
extern HKEY GetNtSectionKey(LPCTSTR lpszSection);
extern int QueryNtRegValue(LPCTSTR lpszSection, LPCTSTR lpszEntry,LPBYTE lpData,int QuerySize);
extern bool DelNtRegValue(LPCTSTR lpszSection, LPCTSTR lpszEntry);
/////////////////////////////////////////////////////////////////////////////
// CUserManage dialog
CUserManage::CUserManage(CWnd* pParent /*=NULL*/)
: CDialog(CUserManage::IDD, pParent)
{
//{{AFX_DATA_INIT(CUserManage)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CUserManage::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CUserManage)
DDX_Control(pDX, IDC_USER_NAME, m_UserName);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CUserManage, CDialog)
//{{AFX_MSG_MAP(CUserManage)
ON_BN_CLICKED(IDC_USER_ADD, OnUserAdd)
ON_BN_CLICKED(IDC_PASS_MODI, OnPassModi)
ON_LBN_SELCHANGE(IDC_USER_NAME, OnSelchangeUserName)
ON_BN_CLICKED(IDC_USER_DEL, OnUserDel)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CUserManage message handlers
BOOL CUserManage::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
HKEY Key;
BYTE UserNum=0;
ULONG cbValueName=20,cbData=20;
if (RegOpenKey(HKEY_CURRENT_USER,"FenlSys\\",&Key))
{
if (RegCreateKey(HKEY_CURRENT_USER,"FenlSys\\",&Key))
{
MessageBox("读写错误!","错误",MB_OK|MB_ICONSTOP);
OnCancel();
}
RegCloseKey(Key);
if (!SetNtRegValue("FenlSys\\","UserNum",(void*)&UserNum,1))
{
MessageBox("读写错误!","错误",MB_OK|MB_ICONSTOP);
OnCancel();
}
return TRUE;
}
RegCloseKey(Key);
Query();
OnSelchangeUserName();
/* QueryNtRegValue("FenlSys\\","UserNum",&UserNum,1);
if (bManage)
{
char UserName[7];
BYTE Data[40];
for (int j=1;j<UserNum+1;j++)
{
sprintf(UserName,"User%02d\0",j);
QueryNtRegValue("FenlSys\\",(LPCTSTR)UserName,Data,40);
m_UserName.AddString((char*)Data);
}
}else
m_UserName.AddString((LPTSTR)CurUserName);*/
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CUserManage::OnUserAdd()
{
// TODO: Add your control notification handler code here
CChangePassword Dlg;
Dlg.UserNameList = &m_UserName;
Dlg.bAdd = true;
Dlg.DoModal();
Query();
OnSelchangeUserName();
}
void CUserManage::OnPassModi()
{
CChangePassword Dlg;
Dlg.UserNameList = &m_UserName;
Dlg.bAdd = false;
Dlg.DoModal();
}
void CUserManage::Query()
{
BYTE UserNum = 0,i=0;
QueryNtRegValue("FenlSys\\","UserNum",&UserNum,1);
i=m_UserName.GetCount();
for (int k=0;k<i;k++) m_UserName.DeleteString(0);
char UserName[7];
BYTE Data[41];
for (int j=1;j<=UserNum;j++)
{
sprintf(UserName,"User%02d\0",j);
QueryNtRegValue("FenlSys\\",(LPCTSTR)UserName,Data,41);
m_UserName.AddString((char*)Data);
}
m_UserName.SetCurSel(0);
if (!bManage)
{
//m_UserName.AddString((LPTSTR)CurUserName.GetBufferSetLength(20));
GetDlgItem(IDC_USER_DEL) ->EnableWindow(FALSE);
GetDlgItem(IDC_USER_ADD)->EnableWindow(FALSE);
m_UserName.SetCurSel(0);
}
}
void CUserManage::OnSelchangeUserName()
{
// TODO: Add your control notification handler code here
int CurNameNo = m_UserName.GetCurSel();
CString CurName;
m_UserName.GetText(CurNameNo,CurName); //.GetDlgItemText(CurNameNo,CurName);
if (CurUserName == CurName) GetDlgItem(IDC_PASS_MODI)->EnableWindow(TRUE);
else GetDlgItem(IDC_PASS_MODI)->EnableWindow(FALSE);
}
void CUserManage::OnUserDel()
{
int CurUserNo = m_UserName.GetCurSel();
char UserName[7],PrintData[41],UserData[41];
m_UserName.GetText(CurUserNo,UserData);
if (CurUserName == UserData)
{
MessageBox("不能删除自己!");
return;
}
sprintf(PrintData,"是否删除用户 %s \0",UserData);
if (MessageBox(PrintData,"确认",MB_YESNO|MB_ICONSTOP)==IDYES)//?
{
BYTE UserNum;
QueryNtRegValue("FenlSys\\","UserNum",&UserNum,1);
CurUserNo ++;
for (int i=CurUserNo;i<UserNum;i++)
{
sprintf(UserName,"User%02d",i+1);
QueryNtRegValue("FenlSys\\",UserName,(BYTE*)UserData,41);
sprintf(UserName,"User%02d",i);
SetNtRegValue("FenlSys\\",UserName,(BYTE*)UserData,41);
}
sprintf(UserName,"User%02d",UserNum);
DelNtRegValue("FenlSys\\",(LPCTSTR)UserName);
UserNum--;
SetNtRegValue("FenlSys\\","UserNum",(void*)&UserNum,1);
Query();
OnSelchangeUserName();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -