サービスが存在するかを確認するVBでのAPIを教えてください。


ひろ  2003-03-19 00:16:27  No: 77398

初めて投稿します。宜しくお願い致します。

質問ですが、WINDOWSで例えば、Oracle.exe等がサービスとして
上がっていないかを確認したいのですが、
APIはありますでしょうか?
それをVBで実現したいのですが、
どなたか知っている方ご教授ください。


魔界の仮面弁士  2003-03-19 00:56:03  No: 77399

その環境でWMIが使えるようになっているならば、
「Win32_Service」を使ってみては如何でしょうか。

とりあえず、「Oracle.exe」がサービス名なのかモジュール名なのかが
はっきりしなかったので、サービスの一覧を表示するサンプルを挙げておきます。

Private Sub Command1_Click()
    Dim WMI As Object
    Dim Services As Object
    Dim Service As Object
    Dim Prop As Object
    Dim L As Long, P As Long

    MsgBox "サービスの一覧を取得します。", vbInformation

    ListView1.View = lvwReport

    Set WMI = GetObject("winmgmts:")

    With ListView1.ColumnHeaders
        .Clear
        .Add Width:=360
        Set Services = WMI.Get("Win32_Service")
        For Each Prop In Services.Properties_
            .Add Text:=Prop.Name, Width:=720
        Next
    End With

    Set Services = WMI.InstancesOf("Win32_Service")
    On Error Resume Next
    For Each Service In Services
        L = L + 1
        With ListView1.ListItems.Add(Text:=CStr(L))
            P = 0
            For Each Prop In Service.Properties_
                P = P + 1
                .SubItems(P) = Prop.Value
            Next
        End With
        If L Mod 10 = 0 Then
            DoEvents
        End If
    Next
    Set Services = Nothing
    Set WMI = Nothing
    MsgBox "サービスの一覧を取得しました。", vbInformation
End Sub


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加