WMI Fun !! 〜 WMI に興味がある方・システム管理者は必見です! 〜
 WMI Step|WMI Sample|WMI Reference|WMI Library|Enquete|About WMI Fun !!
 My Let'snote|Personal|Insomnia|Link

WMI Fun !! > WMI Step > もっと WMI のメソッドを使ってみよう

このエントリーをはてなブックマークに追加
ATM 利用時の入出金手数料が最大 7 回/月無料、楽天銀行
WMI スクリプトの実行結果を VBS を利用してメールで送信する方法を公開しています
パソコンに負荷のかからないウィルス対策なら ESET パーソナル セキュリティ

もっと WMI のメソッドを使ってみよう - WMI Step

Topics

前回のステップで紹介した WMI のメソッドについてもうちょっと説明したいと思います。
前回のステップで実行したサンプルコードを以下のように書き換えてみましょう。



Sample Code

Private Sub Command1_Click()

Dim Prc As SWbemObject
Dim Locator As SWbemLocator
Dim Service As Object
Dim Ret As Long
Dim PID As Long
Dim MesStr As String

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

Set Prc = Service.Get("Win32_Process")

Ret = Prc.Create("notepad.exe", Null, Null, PID)

MsgBox "メモ帳を起動しました。" & vbCrLf & _
         "PIDは、" & CStr(PID) & "ですよ。"

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

End Sub



Comment

見てみて勘の良い方はわかるかもしれませんが今回はコレクションの取得をしていません。 Win32_Process クラス内の Create メソッドを利用しているわけですが、従来どおりコレクションに対して実行していたらどうなるでしょうか? 結果としてはエラーになります。なぜかというと Win32_Process クラスに関していえばすでにプロセスとして存在しているものがあるからコレクションとして取得が出来るわけです。しかしこれからプロセスを作成しようとしているのにコレクションに対して Create メソッドを実行しようとすれば矛盾が発生するわけです。
ですから今回ポイントになる部分は、

Set Prc = Service.Get("Win32_Process")



Ret = Prc.Create("notepad.exe", Null, Null, PID)

です。
前者では今までのサンプルのように WQL を記述して Win32_Process クラスのコレクションを取得するわけではなく Win32_Process のインスタンスを取得しています。インスタンスを取得した上で Create メソッドを実行しています。このように実行されるメソッドを「静的メソッド」というようです。前回の説明であったコレクション内に存在した Terminate メソッドは逆に「動的メソッド」と呼ばれるようです。(クラスがいまいち解っていない人間が書いた文章なので間違っていたらご指摘ください。)
後者の Create メソッドはメモ帳を実行するために使用されます。特にここでは詳しい説明はしませんが予測はつくでしょう。もし解らないようであれば WMI SDK もしくは MSDN ライブラリを参照してみてください。
Ret 変数に入る返り値は notepad.exe を起動した際の PID です。

次は「WMI でリモートコンピュータへアクセス」です。


ご意見・ご要望・ご感想をこちらのアンケートからお待ちしています
WMI に関して調べているけど探し物が見つからない…という方は Search Result から検索してみましょう!!

MCP (Microsoft Certified Professional)、 MCA (Microsoft Certified Associate)CompTIA A+
一応 MCP (Microsoft Certified Professional)、MCA (Microsoft Certified Associate)、
CompTIA A+ を所有してたりします…

- WMI Fun !! -
http://www.wmifun.net/
Microsoft 社のテクノロジーである WMI (Windows Management Instrumentation) の使い方を
Visual Basic を使ってのんびり公開しています
WMI は Windows 7 や Windows 8、Windows 10 で便利に使えますよ!
また VB や VBA、.Net (VB・C#) などの開発環境以外でも Win32/Win64 API に依存しないので WMIC や
WSH (VBS・JS)・PowerShell などスクリプト言語・コマンドラインから有効に活用が出来ます
Windows ベースの社内 IT システムに関する資産管理、アセットマネジメントや監視業務の効率化、
インベントリ情報収集系システムツール開発に WMI はお勧めです

This website is created by Toh.
Copyright(C) 1997-2016 WMI Fun !! All rights reserved.
WMI Fun !! へのリンクはご自由に…相互リンクに関するお問い合わせはアンケートページからお願いします

∧ ページの先頭へ…