亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? admindlg.cpp

?? 網(wǎng)絡(luò)游戲龍族服務(wù)器端管理工具 rmtool 源代碼
?? CPP
字號:
// AdminDlg.cpp : implementation file
//

#include "stdafx.h"
#include "rmtool.h"
#include "AdminDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#include "AccountAuthority.h"
/////////////////////////////////////////////////////////////////////////////
// CAdminDlg dialog
CAdminDlg cAdmindlg;

CAdminDlg::CAdminDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CAdminDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CAdminDlg)
	m_ID = _T("");
	m_IP = _T("");
	m_Name = _T("");
	m_Password = _T("");
	m_ToDay = 0;
	m_ToMonth = 0;
	m_ToYear = 0;
	m_FromDay = 0;
	m_FromMonth = 0;
	m_FromYear = 0;
	m_Type = 0;
	m_szAuthorityType = _T("");
	//}}AFX_DATA_INIT
}


void CAdminDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAdminDlg)
	DDX_Control(pDX, IDC_LIST_LOG, c_Log);
	DDX_Control(pDX, IDC_LIST_ACCOUNT, c_Account);
	DDX_Text(pDX, IDC_ID, m_ID);
	DDX_Text(pDX, IDC_IP, m_IP);
	DDX_Text(pDX, IDC_NAME, m_Name);
	DDX_Text(pDX, IDC_PASSWORD, m_Password);
	DDX_Text(pDX, IDC_TO_DAY, m_ToDay);
	DDX_Text(pDX, IDC_TO_MONTH, m_ToMonth);
	DDX_Text(pDX, IDC_TO_YEAR, m_ToYear);
	DDX_Text(pDX, IDC_FROM_DAY, m_FromDay);
	DDX_Text(pDX, IDC_FROM_MONTH, m_FromMonth);
	DDX_Text(pDX, IDC_FROM_YEAR, m_FromYear);
	DDX_Text(pDX, IDC_TYPE, m_Type);
	DDV_MinMaxUInt(pDX, m_Type, 0, 4294967295);
	DDX_Text(pDX, IDC_AUTHORITY_TYPE, m_szAuthorityType);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CAdminDlg, CDialog)
	//{{AFX_MSG_MAP(CAdminDlg)
	ON_BN_CLICKED(IDC_NEW_ACCOUNT, OnNewAccount)
	ON_BN_CLICKED(IDC_DELETE, OnDelete)
	ON_BN_CLICKED(IDC_SEARCH, OnSearch)
	ON_BN_CLICKED(IDC_OK, OnOk)
	ON_NOTIFY(NM_CLICK, IDC_LIST_ACCOUNT, OnClickListAccount)
	ON_BN_CLICKED(IDC_BTN_SET_AUTHORITY, OnBtnSetAuthority)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAdminDlg message handlers

BOOL CAdminDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	char *Column[4]  = {"ID", "Name", "Authority", "IP"};
	int	 ColumnSize[4] = {100, 70, 50, 100};
	
	c_Log.SetExtendedStyle(LVS_EX_FULLROWSELECT); 
	c_Account.SetExtendedStyle(LVS_EX_FULLROWSELECT); 
	LV_COLUMN col;
	for(int i=0 ; i<4 ; i++)
	{
		//ListView 牧飄費(fèi) 檬扁拳..  漠煩汲瀝 	
		col.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM | LVCF_FMT;
		col.fmt = LVCFMT_LEFT;
		col.cx = ColumnSize[i];
		col.pszText = Column[i];
		col.cchTextMax = 100;
		col.iSubItem = i;

		c_Account.InsertColumn(i, &col);
	}

	char *Column2[6]  = {"No", "ID", "Type", "Date", "ClientIP", "Log"};
	int	 ColumnSize2[6] = {50, 70, 50, 100, 100, 1000};
	for(i=0 ; i<6 ; i++)
	{
		//ListView 牧飄費(fèi) 檬扁拳..  漠煩汲瀝 	
		col.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM | LVCF_FMT;
		col.fmt = LVCFMT_LEFT;
		col.cx = ColumnSize2[i];
		col.pszText = Column2[i];
		col.cchTextMax = 100;
		col.iSubItem = i;

		c_Log.InsertColumn(i, &col);
	}


	//拌瀝 孽府..
	WCHAR wszQuery[ 0xff ];
	swprintf(wszQuery, L"select * from rm_log_info");

	LoginAccount account[ 50 ];
	int ret = g_pDb->OpenRecord(wszQuery, account, (DWORD)(50), (BYTE)TOTAL_DB);

	if(ret <0)
	{
		MessageBox("Fail to query RM_LOG_INFO","Error");
		goto lb_exit;
	}
	else if(ret == 50)
		MessageBox("MAX 50","Error");	//kyo 020314
		//MessageBox("彌措 50俺鱉瘤狼 拌瀝瀝焊父 免仿鄧聰促.","Error"); 

	
	LVITEM item;
	char temp[ 64 ];
	for(i=0; i<ret ; i++)
	{
		
		//id 
		item.mask = LVIF_TEXT | LVIF_PARAM;
		item.pszText = account[i].id;
		item.iItem = i;					//青鍋齲 
		item.iSubItem = 0;				//凱鍋齲 
		//item.lParam = account[i].;
		c_Account.InsertItem(&item);

		
		//撈撫 
		item.mask = LVIF_TEXT;
		item.iSubItem = 1;
		item.pszText = account[i].name;
		c_Account.SetItem(&item);

		//鼻茄
		item.mask = LVIF_TEXT;
		item.iSubItem = 2;
		item.pszText = _itoa(account[i].logintype, temp, 10);
		c_Account.SetItem(&item);

		//IP
		item.mask = LVIF_TEXT;
		item.iSubItem = 3;
		item.pszText = account[i].ip;
		c_Account.SetItem(&item);

	}


	m_IP = "0"; //kyo 020725 ip甫 汲瀝竅瘤 臼綽促. 

lb_exit:
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

BOOL CAdminDlg::IsExistedAccout( LPSTR szAccountName)
{
	char szQuery[ 0xff ];
	WCHAR wszQuery[ 0xff ];

	sprintf(szQuery, "select [ID] from RM_LOG_INFO where [ID] = '%s'", szAccountName );
	g_pDb->KSCToUnicode(szQuery,wszQuery);
	char tmp[CHARACTER_NAME_SIZE];
	int ret = g_pDb->OpenRecord(wszQuery, tmp, CHARACTER_NAME_SIZE, (BYTE)TOTAL_DB);

	if ( ret > 0 )
		return TRUE;
	else
		return FALSE;
}

void CAdminDlg::OnNewAccount() 
{
	// TODO: Add your control notification handler code here
	UpdateData();

	if( m_ID.GetLength() <= 0 ) { AfxMessageBox( "Writed ID" ); return; }
	else if( m_Name.GetLength() <= 0 ) { AfxMessageBox( "Writed Name" );return; }
	//else if( m_Password.GetLength() <= 0 ) AfxMessageBox( "Writed Password" );
	else if( m_Password.Compare("*********") ==0 ) { AfxMessageBox( "Change Password" );return; }
	

	if( TRUE == IsExistedAccout( m_ID.GetBuffer(0) ) )
	{
		AfxMessageBox( "Allready Existed Same ID!!" );
		return;
	}

	char szQuery[ 0xff ];
	WCHAR wszQuery[ 0xff ];

	sprintf(szQuery, "insert into RM_LOG_INFO ([ID],[Password],[Name],LoginType,IP) values ('%s',"
						"'%s','%s',%d,'%s')", m_ID, m_Password, m_Name, m_Type, m_IP);
	g_pDb->KSCToUnicode(szQuery,wszQuery);

	int ret = g_pDb->ExecuteSQL(wszQuery, (BYTE)TOTAL_DB);

	if(ret <= 0)
		MessageBox("Fail to insert new account!","Error");
	else
	{
		int i = c_Account.GetItemCount();	char temp[64];
		LVITEM item;
		//id 
		item.mask = LVIF_TEXT | LVIF_PARAM;
		item.pszText = m_ID.GetBuffer( m_ID.GetLength() );
		item.iItem = i;					//青鍋齲 
		item.iSubItem = 0;				//凱鍋齲 
		//item.lParam = account[i].;
		c_Account.InsertItem(&item);

		
		//撈撫 
		item.mask = LVIF_TEXT;
		item.iSubItem = 1;
		item.pszText = m_Name.GetBuffer( m_Name.GetLength() );
		c_Account.SetItem(&item);

		//鼻茄
		item.mask = LVIF_TEXT;
		item.iSubItem = 2;
		item.pszText = _itoa(m_Type,temp,10);
		c_Account.SetItem(&item);

		//IP
		item.mask = LVIF_TEXT;
		item.iSubItem = 3;
		item.pszText = m_IP.GetBuffer( m_IP.GetLength() );
		c_Account.SetItem(&item);

		//MessageBox("貨肺款 拌瀝撈 眠啊登菌嚼聰促!","Success");
		MessageBox("Added New Account!","Success"); //kyo 020314
	}


}

void CAdminDlg::OnDelete() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);

	char szQuery[ 0xff ];
	WCHAR wszQuery[ 0xff ];

	sprintf(szQuery, "delete from RM_LOG_INFO where [ID]='%s'", m_ID);

	g_pDb->KSCToUnicode(szQuery,wszQuery);

	int ret = g_pDb->ExecuteSQL(wszQuery, (BYTE)TOTAL_DB);

	if(ret > 0)
	{
		//MessageBox("拌瀝撈 昏力登菌嚼聰促!","Success");
		MessageBox("Deleted Account!","Success");//kyo 020314

		c_Account.DeleteAllItems();

		
		//貨肺 孽府~
		swprintf(wszQuery, L"select * from rm_log_info");
		LoginAccount account[ 50 ];
		int ret = g_pDb->OpenRecord(wszQuery, account, 50, (BYTE)TOTAL_DB);

		if(ret <0)
		{
			MessageBox("Fail to query RM_LOG_INFO","Error");
			return;
		}
		else if(ret == 50)
			MessageBox("MAX 50","Error");

		
		LVITEM item;
		char temp[ 64 ];
		for(int i=0; i<ret ; i++)
		{
			
			//id 
			item.mask = LVIF_TEXT | LVIF_PARAM;
			item.pszText = account[i].id;
			item.iItem = i;					//青鍋齲 
			item.iSubItem = 0;				//凱鍋齲 
			//item.lParam = account[i].;
			c_Account.InsertItem(&item);

			
			//撈撫 
			item.mask = LVIF_TEXT;
			item.iSubItem = 1;
			item.pszText = account[i].name;
			c_Account.SetItem(&item);

			//鼻茄
			item.mask = LVIF_TEXT;
			item.iSubItem = 2;
			item.pszText = _itoa(account[i].logintype, temp, 10);
			c_Account.SetItem(&item);

			//IP
			item.mask = LVIF_TEXT;
			item.iSubItem = 3;
			item.pszText = account[i].ip;
			c_Account.SetItem(&item);

		}
	}

}

void CAdminDlg::OnSearch() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
//	char szQuery[ 0xff ];
	WCHAR wszQuery[ 0xff ];

	swprintf(wszQuery, L"select * from rm_log where YEAR(Date) >= %d and YEAR(Date) <= %d "
							L"and MONTH(Date) >=%d and MONTH(Date) <=%d  and DAY(Date) >=%d "
							L"and DAY(Date) <=%d", m_FromYear, m_ToYear, m_FromMonth, m_ToMonth,
							m_FromDay, m_ToDay);

	LogData data[ 200 ];
	int ret = g_pDb->OpenRecord(wszQuery, data, 200, (BYTE)TOTAL_DB);

	if(ret <0)
	{
		MessageBox("Fail to query RM_LOG","Error");
		return;
	}
	else if(ret == 0)
	{
		//MessageBox("朝樓俊 秦寸竅綽 肺弊瀝焊啊 絕嚼聰促.","Info");
		MessageBox("No Data Info.","Info");
		return;
	}
	else if(ret == 200)
		MessageBox("MAX 200","Error");

	c_Log.DeleteAllItems();
	LVITEM item;
	char temp[ 0xff ];
	for(int i=0; i<ret ; i++)
	{
		//No 
		item.mask = LVIF_TEXT | LVIF_PARAM;
		item.pszText = _itoa(data[i].index,temp,10);
		item.iItem = i;					//青鍋齲 
		item.iSubItem = 0;				//凱鍋齲 
		//item.lParam = account[i].;
		c_Log.InsertItem(&item);

		
		//ID 
		item.mask = LVIF_TEXT;
		item.iSubItem = 1;
		item.pszText = data[i].id;
		c_Log.SetItem(&item);

		//Type
		item.mask = LVIF_TEXT;
		item.iSubItem = 2;
		item.pszText = _itoa(data[i].type, temp, 10);
		c_Log.SetItem(&item);

		//Date
		sprintf(temp,"%dYear %dMon %dDay - %dO'clock %dMin %dSec",data[i].date.year, data[i].date.month, data[i].date.day,
							data[i].date.hour, data[i].date.minute, data[i].date.second);
		item.mask = LVIF_TEXT;
		item.iSubItem = 3;
		item.pszText = temp;
		c_Log.SetItem(&item);

		//ClientIp
		item.mask = LVIF_TEXT;
		item.iSubItem = 4;
		item.pszText = data[i].ip;
		c_Log.SetItem(&item);


		//Log
		item.mask = LVIF_TEXT;
		item.iSubItem = 5;
		item.pszText = data[i].log;
		c_Log.SetItem(&item);
	}

}

void CAdminDlg::OnOk() 
{
	// TODO: Add your control notification handler code here
	EndDialog(IDOK);
}

void CAdminDlg::OnClickListAccount(NMHDR* pNMHDR, LRESULT* pResult) 
{
	pNMHDR;
	// TODO: Add your control notification handler code here
	int nItem;
	POSITION pos = c_Account.GetFirstSelectedItemPosition();
	
	if (pos == NULL)
	{
	   MessageBox("No items were selected!");
	   ClearEdit();
	}
	else
	{
	   while (pos)
	   {
		  //急琶等 親格甸闌 備茄促. 
		  nItem = c_Account.GetNextSelectedItem(pos);
	
		  m_ID = c_Account.GetItemText(nItem, 0);
		  m_Name = c_Account.GetItemText(nItem, 1);
		  m_Type = atoi(c_Account.GetItemText(nItem, 2));
		  m_IP = c_Account.GetItemText(nItem, 3);

		  GetAccountNameByValue( m_Type, m_szAuthorityType.GetBuffer(0) );
		  m_Password = "*********";
		  
	   }
	}
	UpdateData(FALSE);
	*pResult = 0;
}

void CAdminDlg::ClearEdit()
{
	//m_Item = "";
	m_ID = "";
	m_Name =  "";
	m_Type = 0;
	m_IP = "";
	m_Password = "";
	m_szAuthorityType = "";
}

void CAdminDlg::OnBtnSetAuthority() 
{
	// TODO: Add your control notification handler code here
	if( cAuthority.DoModal() == IDOK)
	{
		m_Type = cAuthority.m_dwAuthority;
	}
	else
		return;

	
	char szAuName[CHARACTER_NAME_SIZE];


	if( FALSE == GetAccountNameByValue( m_Type, szAuName ) ) return;

	GetDlgItem( IDC_AUTHORITY_TYPE )->SetWindowText( szAuName );
	//int zz = GetUserAuthority();
	
	//UpdateData(FALSE);
}

BOOL CAdminDlg::GetAccountNameByValue( UINT iType, LPSTR szAccountName )
{
	char Sql[ 0xff ];
	WCHAR wSql[ 0xff ];
	sprintf( Sql, "select type_name from RM_Authority_set where type_value = '%d'", iType);
	g_pDb->KSCToUnicode(Sql, wSql);

	char szAuName[CHARACTER_NAME_SIZE];
	int ret = g_pDb->OpenRecord(wSql, szAuName, CHARACTER_NAME_SIZE, (BYTE)TOTAL_DB);
	
	if( strlen( szAuName ) > 0 ) 
	if( ret == 1 )
	{
		strcpy( szAccountName, szAuName);
		return TRUE;
	}
	else if( ret < 0)
		AfxMessageBox( "Query Error : Select ~ RM_Authority_set" );
	else if( ret == 0 )
		AfxMessageBox( "Have no Authority Type ");

	strcpy( szAccountName, "");

	return FALSE;	
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产澳门| 成人精品国产一区二区4080| 国产精品久久久久aaaa| 欧美丰满高潮xxxx喷水动漫| 99久久er热在这里只有精品15| 青草av.久久免费一区| 亚洲男女毛片无遮挡| 久久精品一区四区| 91精品国产麻豆| 色婷婷久久99综合精品jk白丝| 国产经典欧美精品| 老司机精品视频一区二区三区| 一区二区三区日韩欧美| 中文欧美字幕免费| 国产亚洲欧洲一区高清在线观看| 欧美人牲a欧美精品| 色综合久久99| 成人午夜在线视频| 国产成人欧美日韩在线电影| 捆绑变态av一区二区三区| 偷偷要91色婷婷| 亚洲成av人片在www色猫咪| 中文字幕一区二区三区精华液| 久久久久久久久免费| 精品国产一二三区| 51精品久久久久久久蜜臀| 在线国产亚洲欧美| 在线一区二区三区四区| 99国产精品久久久久久久久久| 成人自拍视频在线| 丰满亚洲少妇av| 国产a级毛片一区| 国产91高潮流白浆在线麻豆| 丁香激情综合国产| 成人综合在线观看| jizzjizzjizz欧美| 91小宝寻花一区二区三区| 91美女片黄在线观看| 99精品国产一区二区三区不卡| 成人黄色小视频在线观看| voyeur盗摄精品| www.日韩在线| 在线亚洲欧美专区二区| 欧美视频在线观看一区二区| 欧美日韩第一区日日骚| 91麻豆精品国产91久久久使用方法| 欧美日韩视频在线第一区| 欧美日韩不卡一区二区| 日韩欧美一级精品久久| 久久亚洲欧美国产精品乐播 | 日韩av中文字幕一区二区| 婷婷开心激情综合| 青青草国产成人99久久| 久久爱www久久做| 成人深夜福利app| 色一情一乱一乱一91av| 欧美日韩成人一区二区| 日韩欧美久久久| 国产欧美精品国产国产专区| 最新久久zyz资源站| 亚洲综合区在线| 日韩激情一区二区| 国产成人精品1024| 欧美视频一区二| 精品sm捆绑视频| 国产精品不卡在线观看| 亚洲h动漫在线| 黄页网站大全一区二区| 波多野结衣一区二区三区| 欧美唯美清纯偷拍| 久久综合网色—综合色88| 国产精品不卡在线| 日韩黄色小视频| 东方欧美亚洲色图在线| 欧美在线观看视频一区二区| 欧美精品一区二区精品网| 中文字幕一区二区三区蜜月| 欧美aa在线视频| 91在线精品一区二区| 91精品国产综合久久福利软件| 精品国产污网站| 一区二区三区免费在线观看| 国产在线精品一区二区夜色| 色妞www精品视频| 一区二区高清视频在线观看| 蜜桃91丨九色丨蝌蚪91桃色| 成人高清视频在线观看| 欧美夫妻性生活| 国产精品久久久久久久久免费相片 | 91免费小视频| 日韩欧美一级二级| 亚洲乱码中文字幕| 国产乱码精品一品二品| 欧美少妇性性性| 国产精品免费av| 青青草精品视频| 91视频免费观看| 久久综合精品国产一区二区三区 | aaa欧美日韩| 欧美一区二区日韩| 亚洲精品国产一区二区精华液 | 精品国产91亚洲一区二区三区婷婷| 亚洲人成影院在线观看| 国产麻豆成人精品| 欧美一区二区三区爱爱| 亚洲一本大道在线| 91色.com| 国产精品久久久久久久久久免费看| 老鸭窝一区二区久久精品| 欧美三区免费完整视频在线观看| 国产精品久久久久一区| 国产一区中文字幕| 欧美一区二区三区在线| 亚洲自拍另类综合| 色哟哟一区二区三区| 国产精品伦一区| 国产电影一区在线| 欧美精品一区二区三| 老司机一区二区| 日韩视频一区二区| 日韩黄色免费电影| 欧美日韩国产首页| 亚洲成人先锋电影| 欧美日韩在线播放三区| 亚洲精品福利视频网站| 色婷婷一区二区| 亚洲另类在线制服丝袜| av网站一区二区三区| 日韩一区欧美一区| 成人av影院在线| 国产精品麻豆欧美日韩ww| 成人激情免费电影网址| 中文字幕在线不卡视频| 99久久亚洲一区二区三区青草| 国产精品视频九色porn| 成人晚上爱看视频| 国产精品第一页第二页第三页| 成人av在线看| 中文字幕五月欧美| 色综合久久久久久久久| 一区二区日韩av| 欧美绝品在线观看成人午夜影视| 天天色综合天天| 欧美一区二区免费| 六月丁香综合在线视频| 久久在线免费观看| 成人av在线网站| 樱桃国产成人精品视频| 精品婷婷伊人一区三区三| 日韩精彩视频在线观看| 精品国产电影一区二区| 国产 欧美在线| 亚洲同性gay激情无套| 欧美性猛片aaaaaaa做受| 日韩av网站免费在线| 久久先锋影音av鲁色资源网| 成人国产精品免费| 亚洲国产欧美在线| 欧美不卡一区二区三区四区| 成人网在线免费视频| 亚洲一区二区三区在线| 欧美一级理论片| 国产a区久久久| 亚洲午夜电影在线观看| 日韩欧美国产三级| av成人老司机| 日韩专区一卡二卡| 欧美精品一区二区三区四区| 99久久精品99国产精品| 日韩在线卡一卡二| 国产精品素人视频| 欧美午夜精品一区| 看片网站欧美日韩| ...av二区三区久久精品| 欧美一区二区三区播放老司机| 国产不卡免费视频| 无吗不卡中文字幕| 欧美国产日韩一二三区| 欧美日韩免费观看一区三区| 国产电影精品久久禁18| 亚洲成av人在线观看| 亚洲国产精华液网站w| 欧美美女黄视频| jlzzjlzz亚洲日本少妇| 蜜臀久久久久久久| 亚洲免费大片在线观看| 日韩视频免费直播| 欧美激情一区不卡| 制服丝袜成人动漫| 91女人视频在线观看| 国产一区欧美二区| 五月天亚洲精品| 亚洲乱码精品一二三四区日韩在线 | 成人免费视频app| 奇米精品一区二区三区四区| 亚洲欧美国产高清| 国产欧美日韩三区| 欧美tk—视频vk| 欧美女孩性生活视频| 日本精品一区二区三区高清 |