Практическое руководство. Получение списка служб
Обновлен: Ноябрь 2007
Для извлечения списка служб на определенном компьютере можно использовать метод GetServices класса ServiceController. Метод GetServices возвращает массив всех доступных на компьютере служб, кроме тех, которые связаны с драйверами устройств. Службы драйверов устройств можно извлечь при помощи метода GetDevices.
Для обоих методов можно выбрать определенный компьютер, о котором необходимо собрать информацию, или можно не указывать никаких параметров, чтобы извлечь информацию только о локальном компьютере.
Извлечение списка служб
Создайте массив типа ServiceController для хранения результатов запроса.
Вызовите соответствующий метод класса ServiceController и установите результаты в массив одним из следующих способов:
Для извлечения с локального компьютера списка служб, не связанных с драйверами устройств, вызовите метод GetServices без указания каких-либо параметров:
Dim services() As System.ServiceProcess.ServiceController services = System.ServiceProcess.ServiceController.GetServices()
System.ServiceProcess.ServiceController[] services; services = System.ServiceProcess.ServiceController.GetServices();
System.ServiceProcess.ServiceController services[]; services = System.ServiceProcess.ServiceController.GetServices();
Для извлечения списка служб, не связанных с драйверами устройств, с определенного компьютера вызовите метод GetServices и укажите компьютер, с которого необходимо получить информацию, в виде строкового параметра:
Dim services() As System.ServiceProcess.ServiceController services = System.ServiceProcess.ServiceController.GetServices( _ "machinename")
System.ServiceProcess.ServiceController[] services; services = System.ServiceProcess.ServiceController.GetServices( "machinename");
Для извлечения с локального компьютера списка служб, связанных с драйверами устройств, вызовите метод GetDevices без указания каких-либо параметров:
Dim services() As System.ServiceProcess.ServiceController services = System.ServiceProcess.ServiceController.GetDevices()
System.ServiceProcess.ServiceController[] services; services = System.ServiceProcess.ServiceController.GetDevices();
Для извлечения списка служб, связанных с драйверами устройств, с определенного компьютера вызовите метод GetDevices и укажите компьютер, с которого необходимо получить информацию, в виде строкового параметра:
Dim services() As System.ServiceProcess.ServiceController services = System.ServiceProcess.ServiceController.GetDevices( _ "machinename")
System.ServiceProcess.ServiceController[] services; services = System.ServiceProcess.ServiceController.GetDevices( "machinename");
Приведенный ниже код показывает, как извлечь информацию о наборе служб на локальном компьютере и отобразить информацию о каждой из них в виде списка. Обратите внимание, что метод GetServices возвращает массив объектов ServiceController. Каждый полученный объект ServiceController дает информацию об одной службе на запрашиваемом компьютере:
Sub ListServices() Dim ListBox1 As ListBox Dim services() As System.ServiceProcess.ServiceController Dim i As Integer services = System.ServiceProcess.ServiceController.GetServices() ListBox1.Items.Clear() For i = 0 To services.Length - 1 ListBox1.Items.Add(services(i).ServiceName) Next End Sub
private void ListServices() { ListBox listBox1 = null; System.ServiceProcess.ServiceController[] services; services = System.ServiceProcess.ServiceController.GetServices(); listBox1.Items.Clear(); for (int i = 0; i < services.Length; i++) { listBox1.Items.Add(services[i].ServiceName); } }
Данный пример кода также доступен в виде фрагмента кода Visual Basic IntelliSense. В средстве выбора фрагмента кода он расположен в разделе Операционная система Windows > Службы Windows. Дополнительные сведения см. в разделе Практическое руководство. Вставка фрагментов в код (Visual Basic).
См. также
Задачи
Практическое руководство. Создание экземпляров компонента ServiceController
Практическое руководство. Выполнение задач администрирования служб
Основные понятия
Знакомство со способами взаимодействия с существующими службами