请教各位高手VB有什么代码可以获得服务的状态的

解决方案 »

  1.   

    查询注册表 HKEY_LOCAL_MACHINE,SYSTEM\CurrentControlSet\Services\服务名称 下面"Start"的值(REG_DWORD类型),2为自动,3为手动,4为禁用。
      

  2.   

    '用wmi,系统要求xp以上:
    Private Sub Command4_Click()
    Dim strComputer As String
    Dim objWMIService As Object
    Dim colProcessList
    Dim objProcess As Object
    On Error Resume Next
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colProcessList = objWMIService.ExecQuery("select * from win32_service")
    For Each objProcess In colProcessList
    Debug.Print objProcess.Name, objProcess.State, objProcess.Status
    Next
    End Sub
      

  3.   

    哦,看错了,这样:
    Private Sub Command1_Click()
    Dim strComputer As String
    Dim objWMIService As Object
    Dim colProcessList
    Dim objProcess As Object
    On Error Resume Next
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colProcessList = objWMIService.ExecQuery("select * from win32_service")
    For Each objProcess In colProcessList
    Debug.Print objProcess.Name, objProcess.State, objProcess.Status, objProcess.StartMode
    NextEnd Sub
      

  4.   

    感谢lsftest()啦    哈哈
    你这两个代码对我很有用,其实第一个也挺好,只不过第一个不是我想要的。
    非常感谢你   呵呵
      

  5.   

    请问objProcess.Status这个是什么呢
    怎么返回的都是OK呢
      

  6.   

    之前不知你要的是什么状态,就都给带上了,这个是显示服务另外的一些运行状态,例如正在启动(Starting),正在停止(Stopping),即将失效(Pred Fail)等,详情可参阅msdn。