HOW TO:擷取服務清單
更新:2007 年 11 月
您可以使用 ServiceController 類別的 GetServices 方法,來擷取某一特定電腦的服務清單。GetServices 方法會傳回電腦所有可用的服務,但與裝置驅動程式 (Device Driver) 關聯的服務則不會傳回。您可以使用 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 服務] 中。如需詳細資訊,請參閱 HOW TO:在您的程式碼中插入程式碼片段 (Visual Basic)。
請參閱
工作
HOW TO:建立 ServiceController 元件執行個體