fix: #34 Problems when enum services

This commit is contained in:
yuanyuanxiang
2025-02-07 19:27:54 +08:00
parent 52c5442bfd
commit 2e06d8f5ae

View File

@@ -30,6 +30,10 @@ VOID CServicesManager::SendServicesList()
LocalFree(szBuffer);
}
#ifndef skCrypt
#define skCrypt(p) p
#endif
LPBYTE CServicesManager::GetServicesList()
{
LPENUM_SERVICE_STATUS ServicesStatus = NULL;
@@ -88,31 +92,68 @@ LPBYTE CServicesManager::GetServicesList()
QueryServiceConfig(hServices,ServicesInfor,4*1024,&dwResumeHandle);
//<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (ServicesStatus[i].ServiceStatus.dwCurrentState!=SERVICE_STOPPED) //<2F><><EFBFBD><EFBFBD>״̬
{
ZeroMemory(szRunWay, sizeof(szRunWay));
lstrcat(szRunWay,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
ZeroMemory(szRunWay, sizeof(szRunWay));
switch (ServicesStatus[i].ServiceStatus.dwCurrentState) {
case SERVICE_STOPPED: {
lstrcatA(szRunWay, skCrypt("ֹͣ"));
break;
}
case SERVICE_START_PENDING: {
lstrcatA(szRunWay, skCrypt("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
break;
}
case SERVICE_STOP_PENDING: {
lstrcatA(szRunWay, skCrypt("ֹͣ<EFBFBD><EFBFBD>"));
break;
}
case SERVICE_RUNNING: {
lstrcatA(szRunWay, skCrypt("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
break;
}
case SERVICE_CONTINUE_PENDING: {
lstrcatA(szRunWay, skCrypt("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
break;
}
case SERVICE_PAUSE_PENDING: {
lstrcatA(szRunWay, skCrypt("<EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD>"));
break;
}
case SERVICE_PAUSED: {
lstrcatA(szRunWay, skCrypt("<EFBFBD><EFBFBD>ͣ"));
break;
}
default: {
lstrcatA(szRunWay, skCrypt("δ֪"));
break;
}
else
{
ZeroMemory(szRunWay, sizeof(szRunWay));
lstrcat(szRunWay,"ֹͣ");
}
if(2==ServicesInfor->dwStartType) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //SERVICE_AUTO_START
{
ZeroMemory(szAutoRun, sizeof(szAutoRun));
lstrcat(szAutoRun,"<EFBFBD>Զ<EFBFBD>");
ZeroMemory(szAutoRun, sizeof(szAutoRun));
switch (ServicesInfor->dwStartType) {
case SERVICE_BOOT_START: {
lstrcatA(szAutoRun, skCrypt("<EFBFBD>ں<EFBFBD>"));
break;
}
if(3==ServicesInfor->dwStartType) //SERVICE_DEMAND_START
{
ZeroMemory(szAutoRun, sizeof(szAutoRun));
lstrcat(szAutoRun,"<EFBFBD>ֶ<EFBFBD>");
case SERVICE_SYSTEM_START: {
lstrcatA(szAutoRun, skCrypt("ϵͳ"));
break;
}
case SERVICE_AUTO_START: {
lstrcatA(szAutoRun, skCrypt("<EFBFBD>Զ<EFBFBD>"));
break;
}
case SERVICE_DEMAND_START: {
lstrcatA(szAutoRun, skCrypt("<EFBFBD>ֶ<EFBFBD>"));
break;
}
case SERVICE_DISABLED: {
lstrcatA(szAutoRun, skCrypt("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
break;
}
default: {
lstrcatA(szAutoRun, skCrypt("δ֪"));
break;
}
if(4==ServicesInfor->dwStartType)
{
ZeroMemory(szAutoRun, sizeof(szAutoRun)); //SERVICE_DISABLED
lstrcat(szAutoRun,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
dwLength = sizeof(DWORD) + lstrlen(ServicesStatus[i].lpDisplayName)