View Full Version : Controllare i servizi di windows xp
Salve
c' č per far riavviare o arrestare un servizio di windows xp tramite un programma c++.
Ho notato che tutti i servizi sono gestiti da un eseguibile chiamato svchost perņ non riesco ha trovare una guida per la sintassi di questo comando.
Saluti Pinzi
cerca l'API ControlService su MSDN
Usa l'object model WMI
BIG
Da MSDN:
VOID ControlSampleService(DWORD fdwControl)
{
SERVICE_STATUS ssStatus;
DWORD fdwAccess;
DWORD dwStartTickCount, dwWaitTime;
// The required service object access depends on the control.
switch (fdwControl)
{
case SERVICE_CONTROL_STOP:
fdwAccess = SERVICE_STOP;
break;
case SERVICE_CONTROL_PAUSE:
case SERVICE_CONTROL_CONTINUE:
fdwAccess = SERVICE_PAUSE_CONTINUE;
break;
case SERVICE_CONTROL_INTERROGATE:
fdwAccess = SERVICE_INTERROGATE;
break;
default:
fdwAccess = SERVICE_INTERROGATE;
}
// Open a handle to the service.
schService = OpenService(
schSCManager, // SCManager database
"Sample_Srv", // name of service
fdwAccess); // specify access
if (schService == NULL)
MyErrorExit("OpenService");
// Send a control value to the service.
if (! ControlService(
schService, // handle to service
fdwControl, // control value to send
&ssStatus) ) // address of status info
{
MyErrorExit("ControlService");
}
// Print the service status.
printf("\nStatus of Sample_Srv: \n");
printf(" Service Type: 0x%x\n", ssStatus.dwServiceType);
printf(" Current State: 0x%x\n", ssStatus.dwCurrentState);
printf(" Controls Accepted: 0x%x\n",
ssStatus.dwControlsAccepted);
printf(" Exit Code: %d\n", ssStatus.dwWin32ExitCode);
printf(" Service Specific Exit Code: %d\n",
ssStatus.dwServiceSpecificExitCode);
printf(" Check Point: %d\n", ssStatus.dwCheckPoint);
printf(" Wait Hint: %d\n", ssStatus.dwWaitHint);
return;
}
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.