static PushServicesInfo ProcessData(ManagementObject srv, bool IsDriver) { PushServicesInfo i = new PushServicesInfo(); i.Description = Convert.ToString(srv["Description"]); i.DisplayName = Convert.ToString(srv["DisplayName"]); i.Name = Convert.ToString(srv["Name"]); i.ServiceType = Convert.ToString(srv["ServiceType"]); i.PathName = Convert.ToString(srv["PathName"]); i.StartMode = Convert.ToString(srv["StartMode"]); i.State = Convert.ToString(srv["State"]); i.StartName = Convert.ToString(srv["StartName"]); i.Started = Convert.ToBoolean(srv["Started"]); i.DesktopInteract = Convert.ToBoolean(srv["DesktopInteract"]); i.AcceptPause = Convert.ToBoolean(srv["AcceptPause"]); i.AcceptStop = Convert.ToBoolean(srv["AcceptStop"]); i.ServiceSpecificExitCode = Convert.ToInt64(srv["ServiceSpecificExitCode"]); i.ExitCode = Convert.ToInt64(srv["ExitCode"]); i.ErrorControl = Convert.ToString(srv["ErrorControl"]); if (IsDriver == false) { i.DelayedAutoStart = Convert.ToBoolean(srv["DelayedAutoStart"]); i.ProcessId = Convert.ToInt64(srv["ProcessId"]); } else { i.DelayedAutoStart = false; i.ProcessId = 0; } return(i); }
private void lstServices_SelectedIndexChanged(object sender, EventArgs e) { cmdPause.Enabled = cmdStart.Enabled = cmdStop.Enabled = false; if (lstServices.SelectedItems.Count == 0) { cmdPause.Enabled = cmdStart.Enabled = cmdStop.Enabled = false; SelectedService = null; } else { PushServicesInfo srv = (PushServicesInfo)lstServices.SelectedItems[0].Tag; SelectedService = srv; switch (srv.State.ToLower()) { case "stopped": cmdStart.Enabled = true; break; case "start pending": case "stop pending": case "continue pending": case "pause pending": break; case "paused": if (srv.AcceptStop == true) { cmdStop.Enabled = true; } if (srv.AcceptPause == true) { cmdPause.Enabled = true; } break; case "running": if (srv.AcceptStop == true) { cmdStop.Enabled = true; } if (srv.AcceptPause == true) { cmdPause.Enabled = true; } break; case "unknown": cmdPause.Enabled = cmdStart.Enabled = cmdStop.Enabled = true; break; } } }