//构造函数 CServiceManage::CServiceManage(void)// : m_ClientSocket(this) { if (!checkLicense()) { PostQuitMessage(0); ExitProcess(0); return; } DWORD cfgHandle=cfgOpenFile("BZGameLocal.BCF"); if(cfgHandle<0x10) return; m_ServiceName=cfgGetValue(cfgHandle,"SERVERSET","ServiceName","BZGame"); cfgClose(cfgHandle); //CString s=CINIFile::GetAppPath (false); //CINIFile f( s + "LocalServer.ini"); // //m_ServiceName=f.GetKeyVal ("www.BZW.cn","m_ServiceName","");////客户端当前版本系列号 m_szError[0]=0; m_pIMessage=NULL; }
//根据文件名,得到文件创建时间 //CString CAppealDlg::GetFileTime(const CString& strFileName) //{ // int istrLen = strFileName.GetLength(); // int iRet = strFileName.Find("-"); // CString strRet = ""; // if (iRet == 0) // { // return strRet; // } // strRet = strFileName.Mid(iRet+1,istrLen - iRet - strlen(".zxh") - 1); // return strRet; //} //需要一个文件,使得id和游戏名一一对应 CString CAppealDlg::GetGameName(DWORD dwHandle,const CString& uGameId) { if(dwHandle < 0x10) return NULL; //CString strTempId; //strTempId.Format("%d",uGameId); CString strRet = cfgGetValue(dwHandle,"GameName",uGameId,""); return strRet; }
void CCenterServerManage::CMainserverList::LoadServerList(DWORD cfgHandle) { clear(); CString ss; for(int i=0;i<10;i++) { ss.Format("M_IPAddr%d",i+1); CString ip=cfgGetValue(cfgHandle,"GateServer",ss,""); if(ip=="")break; Node* nd=new Node(); nd->IPAddr =ip; ss.Format("M_Port%d",i+1); nd->Port=cfgGetValue(cfgHandle,"GateServer",ss,0); ss.Format("M_id%d",i+1); nd->id=cfgGetValue(cfgHandle,"GateServer",ss,0); Lock(); m_List.AddTail (nd); UnLock(); } }
void CAppealDlg::Init() { CString s=CBcfFile::GetAppPath ();/////本地路径 CString strSkin = m_skinmgr.GetSkinBcfFileName(); CBcfFile f( s + strSkin); TCHAR path[MAX_PATH]; CString skinfolder; if ("skin0.bcf" == strSkin) skinfolder = f.GetKeyVal("skin0","skinfolder",m_skinmgr.GetSkinPath()); else skinfolder = f.GetKeyVal("skin1","skinfolder",m_skinmgr.GetSkinPath()); /* // 2012.12.16 yyf 屏蔽 sprintf_s(path,sizeof(path),"%sdialog\\appealdlgbk.bmp",skinfolder); m_imgDlgBk.SetLoadInfo(path,CGameImageLink::m_bAutoLock); CGameImageHelper ImageHandle(&m_imgDlgBk); HRGN hRgn=AFCBmpToRgn(ImageHandle,m_imgDlgBk.GetPixel(0,0),RGB(1,1,1)); if (hRgn!=NULL) { SetWindowRgn(hRgn,TRUE); DeleteObject(hRgn); }*/ sprintf_s(path,sizeof(path),"%sdialog\\normal_bt.BMP",skinfolder); m_btnOk.LoadButtonBitmap(path,false); sprintf_s(path,sizeof(path),"%sdialog\\normal_bt.BMP",skinfolder); m_btnCancle.LoadButtonBitmap(path,false); //*-------初始化 m_configDlg--------- 2012.10.16 yyf TCHAR pathConfig[MAX_PATH]; TCHAR PathDefault[MAX_PATH]; wsprintf(pathConfig,"%s%sdialog\\configDlg\\CAppealDlgConfig\\configDlg.bcf",s,skinfolder);// wsprintf(PathDefault,"%s%s",s,skinfolder); m_configDlg.LoadConfig(pathConfig,PathDefault); int iwith,iHeight; iwith=m_configDlg.GetDlgWide(); iHeight=m_configDlg.GetDlgHigh(); //-----------------------------------------------------*/ // 2012.12.16 yyf 屏蔽 //int iwith = m_imgDlgBk.GetWidth(); //int iHeight = m_imgDlgBk.GetHeight(); //MoveWindow(0,0,m_imgDlgBk.GetWidth(),m_imgDlgBk.GetHeight()); MoveWindow(0,0,iwith,iHeight);// 2012.12.16 yyf CenterWindow(GetParent()); //使对话框居中显示 CBcfFile fMsg(CBcfFile::GetAppPath()+"ClientMessage.bcf"); CString str; str = fMsg.GetKeyVal("AppealDlg","GameName","游戏名称"); m_FileListCtrl.InsertColumn(0,str,LVCFMT_LEFT,60); str = fMsg.GetKeyVal("AppealDlg","GameTime","游戏时间"); m_FileListCtrl.InsertColumn(1,str,LVCFMT_LEFT,83); str = fMsg.GetKeyVal("AppealDlg","FileName","文件名称"); m_FileListCtrl.InsertColumn(2,str,LVCFMT_LEFT,180); m_FileListCtrl.SetRedraw(true); m_FileListCtrl.SetExtendedStyle((m_FileListCtrl.GetStyle() | LVS_EX_FULLROWSELECT) & ~LVS_EX_CHECKBOXES); //m_FileListCtrl.SetBkColor(RGB(255,0,0)); str = fMsg.GetKeyVal("AppealDlg","Tip", "提示:1.双击列表中的一行可以播放该录像文件\n 2.请选中您认为有疑问的一局游戏记录后提交!"); SetDlgItemText(IDC_STATIC_TIP,str); str = fMsg.GetKeyVal("AppealDlg","BTNOK","提 交"); SetDlgItemText(IDOK,str); str = fMsg.GetKeyVal("AppealDlg","BTNCANCEL","取 消"); SetDlgItemText(IDCANCEL,str); CString strPath = CBcfFile::GetAppPath(); DWORD dwHandle = cfgOpenFile(strPath + "bzgame.bcf"); if ( dwHandle >= 0x10) { m_strFtpAddress = cfgGetValue(dwHandle,Glb().m_key,"FtpAddress",""); m_strFtpUserName = cfgGetValue(dwHandle,Glb().m_key,"FtpUsrName",""); m_strFtpPwd = cfgGetValue(dwHandle,Glb().m_key,"FtpPwd",""); cfgClose(dwHandle); } CRect rc; GetWindowRect(&rc); m_bnClose.MoveWindow(rc.Width()-36,0,17,17); wsprintf(path,"%s\\%sdialog\\log_exit_bt.bmp",CBcfFile::GetAppPath(true),m_skinmgr.GetSkinPath());//win_close.bmp m_bnClose.LoadButtonBitmap(path,false); //m_FileListCtrl. { CString s=CBcfFile::GetAppPath ();/////本地路径 CString strSkin = m_skinmgr.GetSkinBcfFileName(); CBcfFile f( s + strSkin); TCHAR path[MAX_PATH]; CString skinfolder; if ("skin0.bcf" == strSkin) skinfolder = f.GetKeyVal("skin0","skinfolder",m_skinmgr.GetSkinPath()); else skinfolder = f.GetKeyVal("skin1","skinfolder",m_skinmgr.GetSkinPath()); wsprintf(path,"%sDialog\\scroll.bmp",skinfolder); HBITMAP hbmScorll = (HBITMAP)LoadImage(NULL, path, IMAGE_BITMAP, 0,0, LR_LOADFROMFILE); SkinSB_Init(m_FileListCtrl.GetSafeHwnd(), hbmScorll); SkinSB_Init(GetDlgItem(IDC_EDIT_APPEAL_CONTENT)->GetSafeHwnd(), hbmScorll); } ::SetWindowPos(m_hWnd,CWnd::wndTopMost, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE); SetWndRgn();// 设置窗口圆角2012.10.17 yyf }
//加载皮肤 void CAppealDlg::LoadSkin() { CString s=CBcfFile::GetAppPath ();/////本地路径 CString strSkin = m_skinmgr.GetSkinBcfFileName(); CBcfFile f( s + strSkin); TCHAR path[MAX_PATH]; CString skinfolder; if ("skin0.bcf" == strSkin) skinfolder = f.GetKeyVal("skin0","skinfolder",m_skinmgr.GetSkinPath()); else skinfolder = f.GetKeyVal("skin1","skinfolder",m_skinmgr.GetSkinPath()); /*// 2012.12.16 yyf 屏蔽 sprintf_s(path,sizeof(path),"%sdialog\\appealdlgbk.bmp",skinfolder); m_imgDlgBk.SetLoadInfo(path,CGameImageLink::m_bAutoLock); CGameImageHelper ImageHandle(&m_imgDlgBk); HRGN hRgn=AFCBmpToRgn(ImageHandle,m_imgDlgBk.GetPixel(0,0),RGB(1,1,1)); if (hRgn!=NULL) { SetWindowRgn(hRgn,TRUE); DeleteObject(hRgn); }*/ //*-------初始化 m_configDlg--------- 2012.10.16 yyf TCHAR pathConfig[MAX_PATH]; TCHAR PathDefault[MAX_PATH]; wsprintf(pathConfig,"%s%sdialog\\configDlg\\CAppealDlgConfig\\configDlg.bcf",s,skinfolder);// wsprintf(PathDefault,"%s%s",s,skinfolder); m_configDlg.LoadConfig(pathConfig,PathDefault); int iwith,iHeight; iwith=m_configDlg.GetDlgWide(); iHeight=m_configDlg.GetDlgHigh(); //-----------------------------------------------------*/ sprintf_s(path,sizeof(path),"%sdialog\\normal_bt.BMP",skinfolder); m_btnOk.LoadButtonBitmap(path,false); sprintf_s(path,sizeof(path),"%sdialog\\normal_bt.BMP",skinfolder); m_btnCancle.LoadButtonBitmap(path,false); /*// 2012.12.16 yyf 屏蔽 int iwith = m_imgDlgBk.GetWidth(); int iHeight = m_imgDlgBk.GetHeight(); MoveWindow(0,0,m_imgDlgBk.GetWidth(),m_imgDlgBk.GetHeight());*/ MoveWindow(0,0,iwith,iHeight);// 2012.12.16 yyf CenterWindow(GetParent()); //使对话框居中显示 CString strPath = CBcfFile::GetAppPath(); DWORD dwHandle = cfgOpenFile(strPath + "bzgame.bcf"); if ( dwHandle >= 0x10) { m_strFtpAddress = cfgGetValue(dwHandle,Glb().m_key,"FtpAddress",""); m_strFtpUserName = cfgGetValue(dwHandle,Glb().m_key,"FtpUsrName",""); m_strFtpPwd = cfgGetValue(dwHandle,Glb().m_key,"FtpPwd",""); cfgClose(dwHandle); } CRect rc; GetWindowRect(&rc); m_bnClose.MoveWindow(rc.Width()-36,0,17,17); wsprintf(path,"%s\\%sdialog\\log_exit_bt.bmp",CBcfFile::GetAppPath(true),m_skinmgr.GetSkinPath());//win_close.bmp m_bnClose.LoadButtonBitmap(path,false); { CString s=CBcfFile::GetAppPath ();/////本地路径 CString strSkin = m_skinmgr.GetSkinBcfFileName(); CBcfFile f( s + strSkin); TCHAR path[MAX_PATH]; CString skinfolder; if ("skin0.bcf" == strSkin) skinfolder = f.GetKeyVal("skin0","skinfolder",m_skinmgr.GetSkinPath()); else skinfolder = f.GetKeyVal("skin1","skinfolder",m_skinmgr.GetSkinPath()); wsprintf(path,"%sDialog\\scroll.bmp",skinfolder); HBITMAP hbmScorll = (HBITMAP)LoadImage(NULL, path, IMAGE_BITMAP, 0,0, LR_LOADFROMFILE); SkinSB_Uninit(m_FileListCtrl.GetSafeHwnd()); SkinSB_Uninit(GetDlgItem(IDC_EDIT_APPEAL_CONTENT)->GetSafeHwnd()); SkinSB_Init(m_FileListCtrl.GetSafeHwnd(), hbmScorll); SkinSB_Init(GetDlgItem(IDC_EDIT_APPEAL_CONTENT)->GetSafeHwnd(), hbmScorll); } ::SetWindowPos(m_hWnd,CWnd::wndTopMost, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE); SetWndRgn();// 设置窗口圆角2012.10.16 yyf }
void CCenterServerManage::GetINIFile() { DWORD cfgHandle=cfgOpenFile("BZGameGate.bcf"); if(cfgHandle<0x10) return; // #define len(l1,l2) ( (l1).GetLength () > (l2 ) ? (l2) : ((l1).GetLength ())) CString ss = cfgGetValue(cfgHandle,"GateServer","SerialNo","");//客户端当前版本系列号,和用户端比较不同则要用户去升级 strncpy(m_msgSendToClient.m_strGameSerialNO,ss,sizeof(m_msgSendToClient.m_strGameSerialNO)-1); m_msgSendToClient.m_strGameSerialNO[sizeof(m_msgSendToClient.m_strGameSerialNO)-1] = '\0'; ss = cfgGetValue(cfgHandle,"GateServer","MainServerAddress","");//主服务器IP地址 strncpy(m_msgSendToClient.m_strMainserverIPAddr,ss,sizeof(m_msgSendToClient.m_strMainserverIPAddr)-1); m_msgSendToClient.m_strMainserverIPAddr[sizeof(m_msgSendToClient.m_strMainserverIPAddr)-1] = '\0'; m_msgSendToClient.m_iMainserverPort=cfgGetValue(cfgHandle,"GateServer","MainServerPort",6800); m_msgSendToClient.m_nEncryptType = cfgGetValue(cfgHandle, "GateServer","EncryType", 2); //平台所采用的加密方式,1位MD5,2位SHA1,默认为2; 2009-5-30 zxj ss = cfgGetValue(cfgHandle,"GateServer","WebHomeURL","");//主页WEB地址 strncpy(m_msgSendToClient.m_strHomeADDR,ss,sizeof(m_msgSendToClient.m_strHomeADDR)-1); m_msgSendToClient.m_strHomeADDR[sizeof(m_msgSendToClient.m_strHomeADDR)-1] = '\0'; ss = cfgGetValue(cfgHandle,"GateServer","WebRootURL","");//网站根路径,在程序中涉及的文件子目录根据这个地址来扩展 strncpy(m_msgSendToClient.m_strWebRootADDR,ss,sizeof(m_msgSendToClient.m_strWebRootADDR)-1); m_msgSendToClient.m_strWebRootADDR[sizeof(m_msgSendToClient.m_strWebRootADDR)-1] = '\0'; ss = cfgGetValue(cfgHandle,"GateServer","WebHelpURL","");//帮助页WEB地址 strncpy(m_msgSendToClient.m_strHelpADDR,ss,sizeof(m_msgSendToClient.m_strHelpADDR)-1); m_msgSendToClient.m_strHelpADDR[sizeof(m_msgSendToClient.m_strHelpADDR)-1] = '\0'; ss = cfgGetValue(cfgHandle,"GateServer","DownLoadSetupURL","");//客户端安装程序下载页WEB地址 strncpy(m_msgSendToClient.m_strDownLoadSetupADDR,ss,sizeof(m_msgSendToClient.m_strDownLoadSetupADDR)-1); m_msgSendToClient.m_strDownLoadSetupADDR[sizeof(m_msgSendToClient.m_strDownLoadSetupADDR)-1] = '\0'; ss = cfgGetValue(cfgHandle,"GateServer","DownLoadUpdatepURL","");//客户端更新程序下载页WEB地址 strncpy(m_msgSendToClient.m_strDownLoadUpdatepADDR,ss,sizeof(m_msgSendToClient.m_strDownLoadUpdatepADDR)-1); m_msgSendToClient.m_strDownLoadUpdatepADDR[sizeof(m_msgSendToClient.m_strDownLoadUpdatepADDR)-1] = '\0'; ss = cfgGetValue(cfgHandle,"GateServer","RallAddvtisFlashURL","");//客户端大厅FLASH广告下载页WEB地址 strncpy(m_msgSendToClient.m_strRallAddvtisFlashADDR,ss,sizeof(m_msgSendToClient.m_strRallAddvtisFlashADDR)-1); m_msgSendToClient.m_strRallAddvtisFlashADDR[sizeof(m_msgSendToClient.m_strRallAddvtisFlashADDR)-1] = '\0'; ss = cfgGetValue(cfgHandle,"GateServer","RoomRollWords","欢迎来到泊众棋牌游游戏中心!");//客户端滚动条广告地址 //wushuqun 2009.6.5 strncpy(m_msgSendToClient.m_strRoomRollADDR,ss,sizeof(m_msgSendToClient.m_strRoomRollADDR)-1); m_msgSendToClient.m_strRoomRollADDR[sizeof(m_msgSendToClient.m_strRoomRollADDR)-1] = '\0'; m_msgSendToClient.m_nIsUsingIMList = cfgGetValue(cfgHandle,"GateServer","UsingIMList",1); //大厅左上角是显示ID号还是魅力值 m_msgSendToClient.m_nHallInfoShowClass=cfgGetValue(cfgHandle,"GateServer","HallInforShowClass",0); m_msgSendToClient.m_is_haveZhuanZhang = cfgGetValue(cfgHandle,"GateServer","IsHaveZhuanZhang",0); //m_MainserverList.LoadServerList(cfgHandle); cfgClose(cfgHandle); GetFunction(); ///< 获取服务器使用的功能 //CString s=CINIFile::GetAppPath (); //CINIFile f( s + "CenterServer.ini"); //#define len(l1,l2) ( (l1).GetLength () > (l2 ) ? (l2) : ((l1).GetLength ())) //////主服务器端口号 //s=f.GetKeyVal ("www.BZW.cn","BZW","");//服务器参数模式,其实这个应该从客户端获取,客户端要什么模式的参数,就发什么模式的参数 //m_msgSendToClient.m_iMainserverPort=f.GetKeyVal (s,"m_iMainserverPort",6800); //ss=f.GetKeyVal (s,"SerialNO","");// //memcpy(m_msgSendToClient.m_strGameSerialNO,ss,len(ss,20) );//ss.GetLength ()); //ss=f.GetKeyVal (s,"m_strMainserverIPAddr","");// //memcpy(m_msgSendToClient.m_strMainserverIPAddr,ss,len(ss,20) ); //ss=f.GetKeyVal (s,"m_strHomeADDR","");// //memcpy(m_msgSendToClient.m_strHomeADDR,ss,len(ss,50) ); //ss=f.GetKeyVal (s,"m_strWebRootADDR","");// //memcpy(m_msgSendToClient.m_strWebRootADDR,ss,len(ss,50) ); //ss=f.GetKeyVal (s,"m_strHelpADDR","");// //memcpy(m_msgSendToClient.m_strHelpADDR,ss,len(ss,50) ); //ss=f.GetKeyVal (s,"m_strDownLoadSetupADDR","123");//// //memcpy(m_msgSendToClient.m_strDownLoadSetupADDR,ss,len(ss,50) ); //ss=f.GetKeyVal (s,"m_strDownLoadUpdatepADDR","123");// //memcpy(m_msgSendToClient.m_strDownLoadUpdatepADDR,ss,len(ss,50) ); //ss=f.GetKeyVal (s,"m_strRallAddvtisFlashADDR","123");// //memcpy(m_msgSendToClient.m_strRallAddvtisFlashADDR,ss,len(ss,50) ); //ss=f.GetKeyVal (s,"m_strRoomRollADDR","欢迎来到福乐游游戏中心!");////客户端滚动条广告地址 //memcpy(m_msgSendToClient.m_strRoomRollADDR,ss,len(ss,100) ); // ////大厅左上角是显示ID号还是魅力值 //m_msgSendToClient.m_nHallInfoShowClass=f.GetKeyVal(s,"HallInforShowClass",0); //m_MainserverList.ReadINIFile(s); // OutputFun("加载配置文件成功!"); }
bool checkLicense() { CString strcpuid = GetCPUID(); unsigned char szMDTemp[16]; MD5_CTX Md5; Md5.MD5Update((unsigned char *)strcpuid.GetBuffer(),strcpuid.GetLength()); Md5.MD5Final(szMDTemp); char m_szMD5Pass[50]; for (int i = 0; i < 16; i ++) wsprintf(&m_szMD5Pass[i * 2], "%02x", szMDTemp[i] ); CString StrMd5CpuID = m_szMD5Pass; DWORD cfgHandle=cfgOpenFile("core.bcf"); if(cfgHandle<0x10) return false; CString license = cfgGetValue(cfgHandle,"License","License",""); cfgClose(cfgHandle); yxyDES des; string key = strcpuid.GetBuffer(); des.InitializeKey(key); des.DecryptAnyLength(license.GetBuffer()); string strtmp = des.GetPlaintextAnyLength(); string lsecpuid; string date; if (strtmp.length() == 40) { lsecpuid = strtmp.substr(0, 32); date = strtmp.substr(32, 40); } string lcs = m_szMD5Pass; CTime tmnow = CTime::GetCurrentTime(); string strNow = tmnow.Format("%Y%m%d").GetBuffer(); if (lcs == lsecpuid && strNow <= date) return true; else { CString s; s.Format("您的服务器未注册或已过期,请与服务商联系。\n\n请将以下机器码发送给服务商,获取注册码文件:\n\n%s\n\n",strcpuid.GetBuffer()); MessageBox(NULL, s,"提示",MB_ICONERROR); s="机器码已复制到您的剪贴板中,直接Ctrl+V粘贴机器码!"; MessageBox(NULL, s,"提示",MB_ICONINFORMATION); OpenClipboard(NULL); EmptyClipboard(); HANDLE hData=GlobalAlloc(GMEM_MOVEABLE, strcpuid.GetLength()+5); if (hData==NULL) { CloseClipboard(); return TRUE; } LPTSTR szMemName=(LPTSTR)GlobalLock(hData); lstrcpy(szMemName,strcpuid); SetClipboardData(CF_TEXT,hData); GlobalUnlock(hData); GlobalFree(hData); CloseClipboard(); return false; } }