[リストへもどる]
一括表示

投稿時間:2004/05/10(Mon) 11:26
投稿者名:ひでかず
Eメール:
URL :
タイトル:
サービスのチェック
VBで、サービスの状態(開始、停止)をチェックする方法ってありますか?
WMI(Windows Management Instrumentation)というサービスの状態をチェックしたいのです。
わかる方いましたら、ご教授くださいませ。
お願いしますm(__)m

投稿時間:2004/05/10(Mon) 13:18
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: サービスのチェック
> VBで、サービスの状態(開始、停止)をチェックする方法ってありますか?
> WMI(Windows Management Instrumentation)というサービスの状態をチェックしたいのです。

とりあえず、
  '[Windows Management Instrumentation]サービスの起動チェック
  With CreateObject("Shell.Application")
    If .IsServiceRunning("winmgmt") Then
      Label1.Caption = "サービスは起動されています。"
    Else
      Label1.Caption = "起動されていません。"
    End If
    If .CanStartStopService("winmgmt") Then
      Label2.Caption = "状態を変更できます。"
    Else
      Label2.Caption = "状態を変更できません。"
    End If
  End With
とか。

投稿時間:2004/05/10(Mon) 16:15
投稿者名:ひでかず
Eメール:
URL :
タイトル:
Re^2: サービスのチェック
> > VBで、サービスの状態(開始、停止)をチェックする方法ってありますか?
> > WMI(Windows Management Instrumentation)というサービスの状態をチェックしたいのです。
>
> とりあえず、
>   '[Windows Management Instrumentation]サービスの起動チェック
>   With CreateObject("Shell.Application")
>     If .IsServiceRunning("winmgmt") Then
>       Label1.Caption = "サービスは起動されています。"
>     Else
>       Label1.Caption = "起動されていません。"
>     End If
>     If .CanStartStopService("winmgmt") Then
>       Label2.Caption = "状態を変更できます。"
>     Else
>       Label2.Caption = "状態を変更できません。"
>     End If
>   End With
> とか。

ありがとうございますm(__)m
APIを使うのかと思っていましたが、使わなくてもできるんですねo(^-^)o

投稿時間:2004/05/11(Tue) 17:34
投稿者名:ひでかず
Eメール:
URL :
タイトル:
開始・停止のチェックは出来ましたが・・・
魔界の仮面弁士さんに教えてもらったコードで、開始か停止かを調べることはできました。
ですが、それではやりたいことはできなかったのです( ̄□ ̄;)!!
WMIサービスのスタートアップの種類が自動か手動の時は、サービスが停止中であっても、下記コードを実行
すると勝手に開始状態になってしまうのです。
下記コードを実行する前にサービスのチェックをするので、開始できるのか出来ないのかを判別しなければなりません。
スタートアップの種類を調べることが出来れば確実なのですが・・・
スタートアップの種類を調べる方法はありますでしょうか?

コードは↓

prcCnt = 0
strsql = "SELECT * FROM win32_process WHERE name='" & ProcessName & "'"
For Each oProc In GetObject( _
    "winmgmts:{impersonationLevel=impersonate}") _
    .ExecQuery(strsql)
  If ProcessName = oProc.Name Then
    prcCnt = prcCnt + 1
  End If
Next

If prcCnt > 0 Then
  CHECK_PROCESS = True
Else
  CHECK_PROCESS = False
End If

投稿時間:2004/05/11(Tue) 18:54
投稿者名:ひでかず
Eメール:
URL :
タイトル:
ちなみに環境は
環境ですが、
Win2000 Pro
VB6.0 SP6
です。