feat: Add showing client version and start time

This commit is contained in:
yuanyuanxiang
2024-12-28 04:34:54 +08:00
parent 9617694d14
commit 079443d48f
8 changed files with 96 additions and 40 deletions

Binary file not shown.

View File

@@ -39,7 +39,10 @@ enum
ONLINELIST_OS, //<2F><><EFBFBD><EFBFBD>ϵͳ
ONLINELIST_CPU, //CPU
ONLINELIST_VIDEO, //<2F><><EFBFBD><EFBFBD>ͷ(<28><><EFBFBD><EFBFBD>)
ONLINELIST_PING //PING(<28>Է<EFBFBD><D4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
ONLINELIST_PING, //PING(<28>Է<EFBFBD><D4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
ONLINELIST_VERSION, // <20><EFBFBD><E6B1BE>Ϣ
ONLINELIST_LOGINTIME, // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
ONLINELIST_MAX,
};
@@ -49,7 +52,7 @@ typedef struct
int nWidth; //<2F>б<EFBFBD><D0B1>Ŀ<EFBFBD><C4BF><EFBFBD>
}COLUMNSTRUCT;
const int g_Column_Count_Online = 7; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
const int g_Column_Count_Online = ONLINELIST_MAX; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
COLUMNSTRUCT g_Column_Data_Online[g_Column_Count_Online] =
{
@@ -60,6 +63,8 @@ COLUMNSTRUCT g_Column_Data_Online[g_Column_Count_Online] =
{"CPU", 80 },
{"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ", 72 },
{"PING", 100 },
{"<EFBFBD>", 80 },
{"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>", 180 },
};
// <20><><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3>򡰹<EFBFBD><F2A1B0B9>ڡ<EFBFBD><DAA1>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD> CAboutDlg <20>Ի<EFBFBD><D4BB><EFBFBD>
@@ -322,7 +327,7 @@ VOID CMy2015RemoteDlg::TestOnline()
VOID CMy2015RemoteDlg::AddList(CString strIP, CString strAddr, CString strPCName, CString strOS,
CString strCPU, CString strVideo, CString strPing,CONTEXT_OBJECT* ContextObject)
CString strCPU, CString strVideo, CString strPing, CString ver, CString st, CONTEXT_OBJECT* ContextObject)
{
EnterCriticalSection(&m_cs);
//Ĭ<><C4AC>Ϊ0<CEAA><30> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -334,6 +339,8 @@ VOID CMy2015RemoteDlg::AddList(CString strIP, CString strAddr, CString strPCName
m_CList_Online.SetItemText(i,ONLINELIST_CPU,strCPU);
m_CList_Online.SetItemText(i,ONLINELIST_VIDEO,strVideo);
m_CList_Online.SetItemText(i,ONLINELIST_PING,strPing);
m_CList_Online.SetItemText(i, ONLINELIST_VERSION, ver);
m_CList_Online.SetItemText(i, ONLINELIST_LOGINTIME, st);
m_CList_Online.SetItemData(i,(DWORD_PTR)ContextObject);
@@ -975,20 +982,23 @@ LRESULT CMy2015RemoteDlg::OnUserToOnlineList(WPARAM wParam, LPARAM lParam)
CString strToolTipsText;
try
{
// <20><><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>
if (ContextObject->InDeCompressedBuffer.GetBufferLength() != sizeof(LOGIN_INFOR))
{
return -1;
}
LOGIN_INFOR* LoginInfor = new LOGIN_INFOR;
ContextObject->InDeCompressedBuffer.CopyBuffer((LPBYTE)LoginInfor, sizeof(LOGIN_INFOR), 0);
sockaddr_in ClientAddr;
memset(&ClientAddr, 0, sizeof(ClientAddr));
int iClientAddrLen = sizeof(sockaddr_in);
SOCKET nSocket = ContextObject->sClientSocket;
BOOL bOk = getpeername(nSocket,(SOCKADDR*)&ClientAddr, &iClientAddrLen); //IP C <---IP
BOOL bOk = getpeername(nSocket, (SOCKADDR*)&ClientAddr, &iClientAddrLen);
// <20><><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>
if (ContextObject->InDeCompressedBuffer.GetBufferLength() != sizeof(LOGIN_INFOR))
{
char buf[100];
sprintf_s(buf, "*** Received [%s] invalid login data! ***\n", inet_ntoa(ClientAddr.sin_addr));
OutputDebugStringA(buf);
return -1;
}
LOGIN_INFOR* LoginInfor = new LOGIN_INFOR;
ContextObject->InDeCompressedBuffer.CopyBuffer((LPBYTE)LoginInfor, sizeof(LOGIN_INFOR), 0);
strIP = inet_ntoa(ClientAddr.sin_addr);
@@ -1008,7 +1018,7 @@ LRESULT CMy2015RemoteDlg::OnUserToOnlineList(WPARAM wParam, LPARAM lParam)
strAddr.Format("%d", nSocket);
AddList(strIP,strAddr,strPCName,strOS,strCPU,strVideo,strPing,ContextObject);
AddList(strIP,strAddr,strPCName,strOS,strCPU,strVideo,strPing,LoginInfor->moduleVersion,LoginInfor->szStartTime,ContextObject);
delete LoginInfor;
return S_OK;
}catch(...){

View File

@@ -21,17 +21,6 @@
#define CLIENT_EXIT_WITH_SERVER 1
#endif
typedef struct _LOGIN_INFOR
{
BYTE bToken; // ȡ1<C8A1><31><EFBFBD><EFBFBD>½<EFBFBD><C2BD>Ϣ
char OsVerInfoEx[sizeof(OSVERSIONINFOEX)];// <20><EFBFBD><E6B1BE>Ϣ
DWORD dwCPUMHz; // CPU<50><55>Ƶ
IN_ADDR ClientAddr; // <20>洢32λ<32><CEBB>IPv4<76>ĵ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ݽṹ
char szPCName[MAX_PATH]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL bWebCamIsExist; // <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
DWORD dwSpeed; // <20><><EFBFBD><EFBFBD>
}LOGIN_INFOR,*PLOGIN_INFOR;
// CMy2015RemoteDlg <20>Ի<EFBFBD><D4BB><EFBFBD>
class CMy2015RemoteDlg : public CDialogEx
{
@@ -58,7 +47,7 @@ public:
VOID InitControl(); //<2F><>ʼ<EFBFBD>ؼ<EFBFBD>
VOID TestOnline(); //<2F><><EFBFBD>Ժ<EFBFBD><D4BA><EFBFBD>
VOID AddList(CString strIP, CString strAddr, CString strPCName, CString strOS,
CString strCPU, CString strVideo, CString strPing,CONTEXT_OBJECT* ContextObject);
CString strCPU, CString strVideo, CString strPing, CString ver, CString st, CONTEXT_OBJECT* ContextObject);
VOID ShowMessage(BOOL bOk, CString strMsg);
VOID CreatStatusBar();
VOID CreateToolBar();