| - WMI Fun !! -|WMI Step|WMI Sample|Search|WMI Fun !! Groups|About WMI Fun !! | ||||||
| Top Page >> WMI Step >> メソッドを使ってみよう | ||||||
|
メソッドを使ってみよう
■TopicsWMIでは情報の取得だけではなくメソッドを実行することも可能です。先程実行したサンプルを以下のように書き換えましょう。 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
まず実行する前にメモ帳を複数起動して置いてください。起動がすんだら実行しましょう。実行すると「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 を本で勉強したい方へ。
なかなか WMI のことが乗っている書籍は少ないですが…管理系業務に係る方には楽しめるかも? |
|
| ^ | Copyright(C) 1997-2006 とお All rights reserved. | << |