Files
envi-code/SourceCode/Code2026/EarthWormMain/LockSrvIPDlg.cpp
T
2026-09-28 15:28:50 +08:00

139 lines
3.1 KiB
C++

#include "stdafx.h"
#include "LockSrvIPDlg.h"
static void SplitStrintToArray(LPCTSTR pszDescr, CStringArray &arInfo, TCHAR tcSpace)
{
if (pszDescr == NULL) return;
CString sDescr = pszDescr;
int nLen = sDescr.GetLength();
int i = 0;
CString sText = _T("");
TCHAR tchar = _T('\0');
for (i = 0; i < nLen; i++)
{
tchar = sDescr.GetAt(i);
if (tchar == tcSpace)
{
arInfo.Add(sText);
sText = _T("");
}
else
{
sText += tchar;
}
if (i == nLen - 1 && !sText.IsEmpty())
{
arInfo.Add(sText);
}
}
}
CLockSrvIPDlg::CLockSrvIPDlg(CWnd* pParent /*=NULL*/)
: CDialog(CLockSrvIPDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CLockSrvIPDlg)
//}}AFX_DATA_INIT
m_nField0 = 0;
m_nField1 = 0;
m_nField2 = 0;
m_nField3 = 0;
}
void CLockSrvIPDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLockSrvIPDlg)
//}}AFX_DATA_MAP
DDX_Control(pDX, IDC_IPADDRESS1, m_wndIPAdr);
}
BEGIN_MESSAGE_MAP(CLockSrvIPDlg, CDialog)
//{{AFX_MSG_MAP(CLockSrvIPDlg)
//}}AFX_MSG_MAP
ON_BN_CLICKED(IDOK, &CLockSrvIPDlg::OnBnClickedOk)
END_MESSAGE_MAP()
BOOL CLockSrvIPDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//保存到sys目录下
TCHAR szfileName[MAX_PATH],szFullPath[MAX_PATH];
GetModuleFileName(_hdllInstance,szfileName,MAX_PATH);
TCHAR drive[_MAX_DRIVE] = _T(""),
dir[_MAX_DIR] = _T(""),
fname[_MAX_FNAME] = _T(""),
ext[_MAX_EXT] = _T("");
//e:\,program files\autodesk\,myarx,exe
_tsplitpath(szfileName, drive, dir, fname, ext);
_tcscpy(szFullPath, drive);
_tcscat(szFullPath, dir);
CString sFullPath = szFullPath;
sFullPath.TrimRight(_T('\\'));
//上一级目录
int nPos = sFullPath.ReverseFind(_T('\\'));
CString sPath = sFullPath.Mid(0,nPos + 1);
sFullPath = sPath + _T("sys\\license.ini");
TCHAR szValue[MAX_PATH];
::GetPrivateProfileString(_T("Product"), _T("Server"), _T(""), szValue, MAX_PATH, sFullPath);
CStringArray arFields;
SplitStrintToArray(szValue,arFields,_T('.'));
if (arFields.GetSize() >= 4)
{
m_nField0 = _ttoi(arFields.GetAt(0));
m_nField1 = _ttoi(arFields.GetAt(1));
m_nField2 = _ttoi(arFields.GetAt(2));
m_nField3 = _ttoi(arFields.GetAt(3));
}
return TRUE;
}
void CLockSrvIPDlg::OnBnClickedOk()
{
m_wndIPAdr.GetAddress(m_nField0,m_nField1,m_nField2,m_nField3);
if (m_wndIPAdr.IsBlank())
{
AfxMessageBox(_T("没有正确填写ip地址!请填写网络锁服务器ip地址!"));
return;
}
//保存到sys目录下
TCHAR szfileName[MAX_PATH],szFullPath[MAX_PATH];
GetModuleFileName(_hdllInstance,szfileName,MAX_PATH);
TCHAR drive[_MAX_DRIVE] = _T(""),
dir[_MAX_DIR] = _T(""),
fname[_MAX_FNAME] = _T(""),
ext[_MAX_EXT] = _T("");
//e:\,program files\autodesk\,myarx,exe
_tsplitpath(szfileName, drive, dir, fname, ext);
_tcscpy(szFullPath, drive);
_tcscat(szFullPath, dir);
CString sFullPath = szFullPath;
sFullPath.TrimRight(_T('\\'));
//上一级目录
int nPos = sFullPath.ReverseFind(_T('\\'));
CString sPath = sFullPath.Mid(0,nPos + 1);
sFullPath = sPath + _T("sys\\license.ini");
CString sVal;
sVal.Format(_T("%d.%d.%d.%d"),m_nField0,m_nField1,m_nField2,m_nField3);
::WritePrivateProfileString(_T("Product"), _T("Server"),sVal,sFullPath);
OnOK();
}