Тип запуска службы - C#
Формулировка задачи:
Всем привет, может кто объяснить почему код:
работает нормально, т.е. он выводит службы которые сейчас запущены, но если я хочу вывести службы которые запускаются автоматически
то ничего не выводится, почему и как исправить.
ServiceController[] sc = ServiceController.GetServices(); for (int i = 0; i < sc.Length; i++) { if (sc[i].Status.Equals(ServiceControllerStatus.Running)) { ListViewItem item = new ListViewItem(); item.Text = sc[i].ServiceName; item.SubItems.Add(sc[i].DisplayName); listView2.Items.Add(item); } }
ServiceController[] sc = ServiceController.GetServices(); for (int i = 0; i < sc.Length; i++) { if (sc[i].Status.Equals(ServiceStartMode.Automatic)) { ListViewItem item = new ListViewItem(); item.Text = sc[i].ServiceName; item.SubItems.Add(sc[i].DisplayName); listView2.Items.Add(item); } }
Решение задачи: «Тип запуска службы»
textual
Листинг программы
ArrayList arrServices = new ArrayList(); private void Form1_Load(object sender, EventArgs e) { // Create a new ManagementClass object binded to the Win32_Service WMI class ManagementClass mcServices = new ManagementClass("Win32_Service"); // Loop through each service foreach (ManagementObject moService in mcServices.GetInstances()) { // Create a new array that holds the ListBox item ID and service name string[] srvArray = new string[2]; srvArray[0] = lstServices.Items.Add(moService.GetPropertyValue("Caption").ToString()).ToString(); srvArray[1] = moService.GetPropertyValue("Name").ToString(); // Store the array in the ArrayList arrServices.Add(srvArray); } } private void lstServices_SelectedIndexChanged(object sender, EventArgs e) { ManagementClass mcServices = new ManagementClass("Win32_Service"); // Loop through each service foreach (ManagementObject moService in mcServices.GetInstances()) { // Get back the array with the index of the selected ListBox item from the ArrayList string[] srvArray = (string[])arrServices[lstServices.SelectedIndex]; // If the current service name if (moService.GetPropertyValue("Name").ToString() == srvArray[1]) { // Set the fields accordingly txtDesc.Text = moService.GetPropertyValue("Description").ToString(); lblPath.Text = "Path: " + moService.GetPropertyValue("PathName"); lblType.Text = "Type: " + moService.GetPropertyValue("ServiceType"); lblState.Text = "State: " + moService.GetPropertyValue("State"); lblStartup.Text = "Start-up Type: " + moService.GetPropertyValue("StartMode"); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д