2011-11-07 65 views

回答

2

你不一定需要SMO。您可以使用ServiceController類。下面是啓動未運行的服務的一個簡單的例子:

' don't forget to reference the System.ServiceProcess and Imports System.Management DLLs 

imports System 
imports System.ServiceProcess 
imports System.Management 

public module MyModule 
Sub Main() 
    Dim serviceName as String = "SQLBrowser" 
    Dim sc As ServiceController = New ServiceController(serviceName) 


    ' make sure start mode is automatic 
    Dim path As String = "Win32_Service.Name='" & serviceName & "'" 
    Dim p As New ManagementPath(path) 
    Dim ManagementObj As New ManagementObject(p) 
    Dim parameters As Object() = New Object(0) {} 
    Dim value As String = "Automatic" 
    parameters(0) = value 
    ManagementObj.InvokeMethod("ChangeStartMode", parameters) 

    if sc.Status = ServiceControllerStatus.Stopped or sc.Status = ServiceControllerStatus.Paused then 
     Console.WriteLine(serviceName + " is starting.") 
     sc.Start() 
    else 
     Console.WriteLine(serviceName + " is running.") 
    end if 
End Sub 

末模塊

+0

更新程式碼的簡單使用... –

+0

這看起來不錯。殘疾人服務會發生什麼?我如何啓用它? – GilShalit

+0

要處理一個disbled服務,有一個不同的API。請參閱此處的示例:http://social.msdn.microsoft.com/forums/en-US/vbgeneral/thread/086b4d8b-18d1-41d4-82d6-66509c726614 –

相關問題