📄 updateipdlg.cpp
字号:
// UpdateIpDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "VipClient.h"
#include "UpdateIpDlg.h"
#include ".\updateipdlg.h"
#include <afxinet.h>
#include "iphelper.h"
#include "stdio.h"
// CUpdateIpDlg 对话框
IMPLEMENT_DYNAMIC(CUpdateIpDlg, CDialog)
CUpdateIpDlg::CUpdateIpDlg(CWnd* pParent /*=NULL*/)
: CDialog(CUpdateIpDlg::IDD, pParent)
, m_strFtpServer(_T(""))
, m_dwPortFtp(0)
, m_dwPortMy(0)
, m_strMyIp(_T(""))
, m_strFile(_T(""))
, m_strUser(_T(""))
, m_strPass(_T(""))
{
}
CUpdateIpDlg::~CUpdateIpDlg()
{
}
void CUpdateIpDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT_FTPSERVER, m_strFtpServer);
DDX_Text(pDX, IDC_EDIT_PORT, m_dwPortFtp);
DDX_Text(pDX, IDC_EDIT_PORTMY, m_dwPortMy);
DDX_CBString(pDX, IDC_COMBO_IP, m_strMyIp);
DDX_Text(pDX, IDC_EDIT_FILE, m_strFile);
DDX_Text(pDX, IDC_EDIT_USER, m_strUser);
DDX_Text(pDX, IDC_EDIT_PASS, m_strPass);
}
BEGIN_MESSAGE_MAP(CUpdateIpDlg, CDialog)
ON_BN_CLICKED(IDOK, OnBnClickedOk)
ON_EN_CHANGE(IDC_EDIT_FTPSERVER, OnEnChangeEditFtpserver)
END_MESSAGE_MAP()
// CUpdateIpDlg 消息处理程序
void CUpdateIpDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData();
CInternetSession ses;
CFtpConnection* hFTP = ses.GetFtpConnection(m_strFtpServer, m_strUser, m_strPass, (INTERNET_PORT)m_dwPortFtp,FALSE);
if( !hFTP )
{
MessageBox(L"登陆FTP服务器失败");
return ;
}
CString strText; strText.Format(L"%s/%d", m_strMyIp, m_dwPortMy);
char szTmpPath[MAX_PATH];
memset(szTmpPath, 0, sizeof(szTmpPath));
GetTempPathA(MAX_PATH, szTmpPath);
strcat(szTmpPath, "ip.txt");
FILE* fp = fopen(szTmpPath, "w");
fwrite((LPCSTR)ATL::CT2A(strText), 1, lstrlen(strText), fp);
fclose(fp);
BOOL bIsOK = hFTP->PutFile(ATL::CA2T(szTmpPath), m_strFile);
if(!bIsOK)
{
MessageBox(L"传输文件失败,请检查FTP服务器设置");
return ;
}
hFTP->Close();
ses.Close();
//更新成功通知
MessageBox(L"更新客户端IP通知成功");
//OnOK();
}
BOOL CUpdateIpDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: 在此添加额外的初始化
WCHAR szIp[256] = {0};
_tcscpy(szIp, iphelper::basic::IP2Addr(iphelper::adapter::GetBestInterface(0)).c_str());
// CComboBox* pList = (CComboBox*)GetDlgItem(IDC_COMBO_IP);
// pList->AddString(szIp);
// pList->SelectString(0, szIp);
m_strMyIp = szIp;
m_strFile = L"/ip.txt";
m_dwPortFtp = 21;
m_dwPortMy = 2007;
m_strUser = L"username";
m_strPass = L"username";
m_strFtpServer = L"ftp.xxx.com";
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
void CUpdateIpDlg::OnEnChangeEditFtpserver()
{
// TODO: 如果该控件是 RICHEDIT 控件,则它将不会
// 发送该通知,除非重写 CDialog::OnInitDialog()
// 函数并调用 CRichEditCtrl().SetEventMask(),
// 同时将 ENM_CHANGE 标志“或”运算到掩码中。
// TODO: 在此添加控件通知处理程序代码
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -