Originariamente inviato da Kalman
Prima di tutto penso che per avere un elenco dei servizi di un server devi creare un utente che sia amministratore della macchina. E il processo o l'application pool del tuo monitor deve girare con questo account amministrativo.
Aggiungi nelle reference del progetto:
System.ServiceProcess.dll
Per avere l'elenco dei servizi puoi fare:
private void ListServices()
{
System.ServiceProcess.ServiceController[] services;
services = System.ServiceProcess.ServiceController.GetService s();
listBox1.Items.Clear();
for (int i = 0; i < services.Length; i++)
{
listBox1.Items.Add(services[i].ServiceName);
}
}
Per sapere se un servizio è attivo o meno:
private void button4_Click(object sender, System.EventArgs e)
{
string serviceName = listBox1.SelectedItem.ToString();
System.ServiceProcess.ServiceController myController = new System.ServiceProcess.ServiceController(serviceNam e);
if (myController.CanStop)
{
MessageBox.Show(myController.DisplayName + " can be stopped.");
} else {
MessageBox.Show(myController.DisplayName + " cannot stop.");
}
}
Fammi sapere
Ciao
K