📄 autotransferdlg.cpp
字号:
// AutoTransferDlg.cpp : implementation file
//
#include "stdafx.h"
#include "rmtool.h"
#include "AutoTransferDlg.h"
#include "packet.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAutoTransferDlg dialog
CAutoTransferDlg::CAutoTransferDlg(CWnd* pParent /*=NULL*/)
: CDialog(CAutoTransferDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CAutoTransferDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_bCancel = FALSE;
}
void CAutoTransferDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAutoTransferDlg)
DDX_Control(pDX, IDC_PROGRESS_TOTAL, c_TotalProg);
DDX_Control(pDX, IDC_PROGRESS_EXE, c_ExeProg);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAutoTransferDlg, CDialog)
//{{AFX_MSG_MAP(CAutoTransferDlg)
ON_WM_TIMER()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAutoTransferDlg message handlers
BOOL CAutoTransferDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_pApp = (CRMToolApp*)AfxGetApp();
m_nTotalServerCount = m_pDlg->m_nSelectedCount; //墨乔 疙飞阑 郴妨具且 醚 辑滚 肮荐
SetProgressMode();
SetDlgItemText(IDC_STATIC_TOTAL,"Ready...");
SetDlgItemText(IDC_STATIC_EXE,"Ready...");
SetTimer(1, 50, NULL);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CAutoTransferDlg::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,2); //立加苞 墨乔 滴 窜拌肺 窍磊..
c_TotalProg.SetRange((short)(0), (short)m_nTotalServerCount);
}
void CAutoTransferDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
switch(nIDEvent)
{
case 1:
{
KillTimer(1);
char szIp[16];
WORD wPort;
CString szFileName,szMessage;
CString szTemp, szTemp2;
BYTE bType;
for(int i=0; i<m_pDlg->m_nSelectedCount; i++)
{
if(m_bCancel) return;
memcpy(szIp, m_pDlg->m_SelectedBuffer[ i ].szIp, sizeof(szIp));
szMessage.Format("%s Listener Connecting And Message Sending...",szIp);
SetDlgItemText(IDC_STATIC_TOTAL, szMessage);
if(!g_pFt->Connect(szIp, RMTOOL_CONNECT_PORT)) //阿 府胶呈肺
{
CString str;
str.Format("Fail to Connect! Ip:%s",szIp);
MessageBox(str);
}
SetDlgItemText(IDC_STATIC_TOTAL, szMessage);
for(int j=0; j< m_pDlg->m_SelectedBuffer[i].wPortArray.GetSize(); j++)
{
if(m_bCancel) return;
if(j == 0)
c_ExeProg.SetRange(0, (short)(m_pDlg->m_SelectedBuffer[i].wPortArray.GetSize()) );
wPort = m_pDlg->m_SelectedBuffer[ i ].wPortArray.GetAt(j);
bType = m_pDlg->m_SelectedBuffer[ i ].bServerType.GetAt(j);
szFileName = GetExeFile(bType);
char *szServer = new char[MAX_PATH];
switch(bType)
{
case SERVER_TYPE_PROXY: szServer = "Proxy"; break;
case SERVER_TYPE_AGENT: szServer = "Agent"; break;
case SERVER_TYPE_DBDEMON: szServer = "DBDemon"; break;
case SERVER_TYPE_MAP: szServer = "Map"; break;
}
szMessage.Format("Port:%d, %sServer Copying Executed File...",wPort,szServer);
SetDlgItemText(IDC_STATIC_EXE, szMessage);
if(szFileName == "")
{
CString str;
str.Format("No ServerFile a Selected. Port:%d, Type:%d",wPort,bType);
MessageBox(str);
continue;
}
//颇老 墨乔 皋技瘤
PACKET_FILE_COPY packet(bType, wPort, (BYTE)m_nExecute, szFileName.GetBuffer( szFileName.GetLength() ));
g_pFt->Send((char*)&packet, (unsigned short)packet.GetPacketSize());
c_ExeProg.SetPos(j+1);
Invalidate();
PumpMessage();
Sleep(200);
}
//促款肺靛 版肺 嘎苗林绊..
szTemp = m_pApp->m_szDownloadPath[ m_pView->m_nCurServerSet ];
szTemp2 = szTemp.Mid(3);
PACKET_SET_DOWNLOAD_PATH packet_d(szTemp.GetAt(0), szTemp2.GetBuffer( szTemp2.GetLength() ));
g_pFt->Send((char*)&packet_d, (unsigned short)packet_d.GetPacketSize());
//
Sleep(200);
g_pFt->CloseClientSocket();
c_TotalProg.SetPos(i+1);
}
}
break;
}
CDialog::OnTimer(nIDEvent);
EndDialog(IDOK);
}
CString CAutoTransferDlg::GetExeFile(int nServerType)
{
POSITION pos;
int nCount; nCount=0;
char key[ 0xff ]; memset(key,0,0xff);
char app[ 0xff ]; memset(app,0,0xff);
int nFile; nFile = m_ExeList.GetCount();
char path[ MAX_PATH ];
//sprintf(instpath,"%s\\Setup.ini",m_pApp->GetInstalledPath());
__PATH
//sprintf(instpath,"%s", g_szSetupPath);
CString szPath,exeName;
pos = m_ExeList.GetHeadPosition();
while(pos)
{
szPath = m_ExeList.GetNext(pos);
exeName = szPath.Right(szPath.GetLength() - szPath.ReverseFind('\\') - 1);
switch(nServerType)
{
case SERVER_TYPE_PROXY:
{
if(!exeName.Left(5).CompareNoCase("Proxy"))
{
m_pApp->m_szServerFile[ m_pView->m_nCurServerSet ][0] = szPath;
//Recent File 历厘
sprintf(app,"RecentFile%d",m_pView->m_nCurServerSet + 1);
sprintf(key,"File%d", 1);
WritePrivateProfileString(app,key,m_pApp->m_szServerFile[ m_pView->m_nCurServerSet ][0],path);
return exeName;
}
}
break;
case SERVER_TYPE_AGENT:
{
if(!exeName.Left(5).CompareNoCase("Agent"))
{
m_pApp->m_szServerFile[ m_pView->m_nCurServerSet ][1] = szPath;
//Recent File 历厘
sprintf(app,"RecentFile%d",m_pView->m_nCurServerSet + 1);
sprintf(key,"File%d", 2);
WritePrivateProfileString(app,key,m_pApp->m_szServerFile[ m_pView->m_nCurServerSet ][1],path);
return exeName;
}
}
break;
case SERVER_TYPE_DBDEMON:
{
if(!exeName.Left(7).CompareNoCase("DBDemon"))
{
m_pApp->m_szServerFile[ m_pView->m_nCurServerSet ][2] = szPath;
//Recent File 历厘
sprintf(app,"RecentFile%d",m_pView->m_nCurServerSet + 1);
sprintf(key,"File%d", 3);
WritePrivateProfileString(app,key,m_pApp->m_szServerFile[ m_pView->m_nCurServerSet ][2],path);
return exeName;
}
}
break;
case SERVER_TYPE_MAP:
{
if(!exeName.Left(3).CompareNoCase("Map"))
{
m_pApp->m_szServerFile[ m_pView->m_nCurServerSet ][3] = szPath;
//Recent File 历厘
sprintf(app,"RecentFile%d",m_pView->m_nCurServerSet + 1);
sprintf(key,"File%d", 4);
WritePrivateProfileString(app,key,m_pApp->m_szServerFile[ m_pView->m_nCurServerSet ][3],path);
return exeName;
}
}
break;
}//switch
}//while
return "";
}
void CAutoTransferDlg::PumpMessage()
{
ASSERT(m_hWnd!=NULL);
MSG msg;
while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
if(!IsDialogMessage(&msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
}
void CAutoTransferDlg::OnCancel()
{
// TODO: Add extra cleanup here
m_bCancel = TRUE;
CDialog::OnCancel();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -