📄 exetransferdlg.cpp
字号:
// ExeTransferDlg.cpp : implementation file
//
#include "stdafx.h"
#include "rmtool.h"
#include "ExeTransferDlg.h"
#include "packet.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CExeTransferDlg dialog
CExeTransferDlg::CExeTransferDlg(CWnd* pParent /*=NULL*/)
: CDialog(CExeTransferDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CExeTransferDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_nCurFileCount = 0;
m_bCancel = 0;
m_pApp = (CRMToolApp*)AfxGetApp();
m_bAuto = 0; //磊悼 靛贰弊 菩摹 牢 版快 1
}
void CExeTransferDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CExeTransferDlg)
DDX_Control(pDX, IDC_PROGRESS_TOTAL, c_TotalProg);
DDX_Control(pDX, IDC_PROGRESS_EXE, c_ExeProg);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CExeTransferDlg, CDialog)
//{{AFX_MSG_MAP(CExeTransferDlg)
//}}AFX_MSG_MAP
ON_MESSAGE(UM_START_TRANSFER_NEWFILE, CExeTransferDlg::OnStartTransferNewFile)
ON_MESSAGE(UM_SUCCESS_TRANSFER_FILE, CExeTransferDlg::OnSuccessTransferFile)
ON_MESSAGE(UM_TRANSFERING, CExeTransferDlg::OnTransfering)
ON_MESSAGE(UM_ALL_TRANSFER_COMPLETE, CExeTransferDlg::OnAllTransferComplete)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CExeTransferDlg message handlers
void CExeTransferDlg::SetProgressMode()
{
//归弊扼款靛 祸彬 瘤沥..
c_TotalProg.SetBkColor(RGB(228,228,228));
c_ExeProg.SetBkColor(RGB(228,228,228));
c_TotalProg.SetGradientColors(RGB(0,109,255),RGB(0,0,62));
c_ExeProg.SetGradientColors(RGB(0,109,255),RGB(0,0,62));
//Progress Bar 焊歹 咯归 炼辆
CRect rect(1,1,1,1);
c_TotalProg.SetBorders(&rect);
c_ExeProg.SetBorders(&rect);
//Percentage Mode 悸泼
c_TotalProg.SetShowPercent(TRUE);
c_ExeProg.SetShowPercent(TRUE);
c_ExeProg.SetRange(0,100);
c_TotalProg.SetRange(0, (short)m_nTotalFileCount);
}
BOOL CExeTransferDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_nTotalFileCount = m_ExeList.GetCount();
g_pFt->SetProgressingHandle( m_hWnd ); //DLL俊 Dialog狼 勤甸蔼阑 悸泼秦 霖促.
SetProgressMode();
TransferExeFile();
// CloseDialog();
return TRUE; // return TRUE unles you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CExeTransferDlg::TransferExeFile()
{
//g_pFt->SetReadRoot("D:\\ini");
//ini甫 捞侩茄 Patch老 版快俊绰 ini 积己 版肺肺 Root甫 嘎苗霖促.
// if(!m_bAuto)
// g_pFt->SetReadRoot( m_pApp->m_szIniMakePath.GetBuffer( m_pApp->m_szIniMakePath.GetLength() ));
char szIP[ 16 ];
sprintf(szIP, "%s",m_pApp->m_szGameServerDataIp);
POSITION pos;
while(1)
{
pos = m_ExeList.GetHeadPosition();
if(pos == NULL)
break; //List is Empty!!
CString path = m_ExeList.GetAt(pos); //府胶飘狼 霉锅掳俊 乐绰 菩胶甫 罐酒坷绊..
//ReadRoot 瘤沥
int nIndex = path.ReverseFind('\\');
CString szFolder = path.Left(nIndex);
g_pFt->SetReadRoot( szFolder.GetBuffer( szFolder.GetLength() ));
g_pFt->AddFile(path.GetBuffer( path.GetLength() ),FALSE);
m_ExeList.RemoveAt(pos);
}
g_pFt->CloseClientSocket(); //kyo 趣矫 牢掺呈历绰啊 犬牢窍扁 困秦..
if(!g_pFt->Connect(szIP,RMTOOL_CONNECT_PORT)) //立加
{
AfxMessageBox("Can not connect server!");
CloseDialog();
return FALSE;
}
CString szTemp, szTemp2;
szTemp = m_pApp->m_szUploadPath;
szTemp2 = szTemp.Mid(3);
PACKET_SET_DOWNLOAD_PATH packet(szTemp.GetAt(0), szTemp2.GetBuffer( szTemp2.GetLength() ));
//dll肺 颇老阑 焊郴搁..
DWORD res; res = g_pFt->Send((char*)&packet, (WORD)packet.GetPacketSize());//020303 lsw
g_pFt->StartTransfer();
return TRUE;
}
void CExeTransferDlg::OnStartTransferNewFile(WPARAM wParam, LPARAM lParam)
{
lParam;
if(m_bCancel) return;
//wParam俊绰 傈价阑 矫累窍绰 颇老疙 CString* 啊 逞绢柯促. LPARAM俊绰 配呕 轿捞令
m_szCurTransferingFile = *((CString*)wParam);
CString str;
if(m_szCurTransferingFile.GetLength() > 40)
str.Format("..%s Sending File...", m_szCurTransferingFile.Right(40));
else
str.Format("%s Sending Files...",m_szCurTransferingFile);
SetDlgItemText(IDC_STATIC_EXE,str);
str.Format("Total %dFiles Now %dFiles Complete", m_nTotalFileCount , m_nCurFileCount);
SetDlgItemText(IDC_STATIC_TOTAL,str);
}
void CExeTransferDlg::OnSuccessTransferFile(WPARAM wParam, LPARAM lParam)
{
wParam;lParam;
if(m_bCancel) return;
m_szCurTransferingFile = "";
m_nCurFileCount++; //泅犁 割俺鳖瘤 罐疽唱 墨款飘 刘啊
CString str;
str.Format("Total %dFiles Now %dFiles Complete", m_nTotalFileCount , m_nCurFileCount);
SetDlgItemText(IDC_STATIC_TOTAL,str);
c_TotalProg.SetPos(m_nCurFileCount); //橇肺弊饭胶官 悸泼
//if( m_nTotalFileCount == m_nCurFileCount )
// CloseDialog();//kyo
}
void CExeTransferDlg::OnTransfering(WPARAM wParam, LPARAM lParam)
{
//wParam俊绰 醚 颇老 荤捞令啊.. lParam俊绰 泅犁鳖瘤 焊辰 颇老 荤捞令(byte)啊 朝酒柯促.
if(m_bCancel) return;
CString str;
DWORD dwKB;
if(wParam > 1024)
{
dwKB = wParam / 1024;
str.Format("(%ldKB/%ldKB)",lParam/1024, wParam/1024);
}
else
{
dwKB = wParam;
str.Format("(%ldbytes/%ldbytes)", lParam, wParam);
}
double percentage = (lParam*1.0 / wParam*1.0) * 100.;
c_ExeProg.SetPos((int)percentage);
SetDlgItemText(IDC_STATIC_FILE_BYTE,str);
}
void CExeTransferDlg::OnAllTransferComplete(WPARAM wParam, LPARAM lParam)
{
wParam;lParam;
CloseDialog();
}
void CExeTransferDlg::CloseDialog()
{
g_pFt->ClearFileQueue();
g_pFt->CloseClientSocket();
EndDialog(IDOK);
}
void CExeTransferDlg::OnCancel()
{
// TODO: Add extra cleanup here
m_bCancel = TRUE;
g_pFt->ClearFileQueue();
g_pFt->CloseClientSocket();
CDialog::OnCancel();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -