- WMI Fun !! -|WMI StepWMI SampleSearchWMI Fun !! GroupsAbout WMI Fun !!
Top Page >> WMI Step >> メソッドを使ってみよう
メソッドを使ってみよう
Topics

WMIでは情報の取得だけではなくメソッドを実行することも可能です。先程実行したサンプルを以下のように書き換えましょう。


Sample Code

Private Sub Command1_Click()

Dim PrcSet As SWbemObjectSet
Dim Prc As SWbemObject
Dim Locator As SWbemLocator
Dim Service As SWbemServices
Dim MesStr As String

Set Locator = New WbemScripting.SWbemLocator
Set Service = Locator.ConnectServer

Set PrcSet = Service.ExecQuery _
  ("Select * From Win32_Process Where Description=""notepad.exe""")

For Each Prc In PrcSet

  Prc.Terminate
  MsgBox "PIDが" + CStr(Prc.ProcessId) + "のメモ帳を終了しました。"

Next

Set Prc = Nothing
Set Service = Nothing
Set Locator = Nothing

End Sub

Comment

まず実行する前にメモ帳を複数起動して置いてください。起動がすんだら実行しましょう。実行すると「PIDがxxxのメモ帳を終了しました。」と言うメッセージが表示されメモ帳のプロセスがなくなっていることがわかります。 今回ポイントになる部分は、


Set PrcSet = Service.ExecQuery _
  ("Select * From Win32_Process Where Description=""notepad.exe""")



  Prc.Terminate

です。
前者は先程説明したとおりWQLを活用した例です。「Where Description=""notepad.exe""」を指定したことで、「notepad.exe」プロセスのみをコレクションとして取り出しています。
後者はWin32_Processクラスに存在するTerminateメソッドです。取得したコレクション全てに対してTerminateメソッドを実行することによって、実行していた「notepad.exe」を全て終了することになります。
この通りWMIを活用すれば柔軟な対応が可能になります。

次ではもうちょっとメソッドに関して触っていこうと思います。


WMI を本で勉強したい方へ。 Windows PowerShellインアクション を読んでみては?
なかなか WMI のことが乗っている書籍は少ないですが…管理系業務に係る方には楽しめるかも?
パソコンで目が疲れたら、ブルーベリーアイ
『ブルーベリーアイ』1粒中ビルベリーエキス160mg【楽天シニア市場】
 ^ Copyright(C) 1997-2006 とお All rights reserved. <<