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 > VB.NET から WMI を使ってみよう

このエントリーをはてなブックマークに追加
電子タバコならやっぱりアイコス ネイビー
気になる車は新車購入支援サイト オートックワンで最短 60 秒で見積もり OK
常に話題の最先端を行くスマートフォンは、 Apple iPhone

VB.NET から WMI を使ってみよう - WMI Step

Topics

そろそろ VB.Net (Visual Basic .Net) を使ってアプリケーションを組んでいる人も出てきたのではないかと思い、ここでは VB.Net で WMI を使う方法を紹介します。
VB.Net からは .Net Framewrok を使用して WMI を呼び出し使用します。

今までのサンプルコードと同様に Button をフォームに一つ貼り付けた状態のサンプルになります。

ちなみに私はまだ VB.Net 慣れしていません(泣)。よって不十分な表記があるかもしれませんがその際には指摘してもらえるとありがたいです。



Sample Code

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim Searcher As New ManagementObjectSearcher()
Dim PrcSrc As ManagementObjectCollection
Dim Prc As ManagementObject
Dim MesStr As String

Searcher.Query.QueryString = "SELECT * FROM Win32_Process"
PrcSrc = Searcher.Get

For Each Prc In PrcSrc

MesStr = MesStr & Prc("Description") & ":" & Prc("ProcessId").ToString() & vbCrLf

Next

MsgBox(MesStr)

End Sub



Comment

では実行してみましょう。
多分エラーが出ると思います。「プロジェクト」メニューから「参照の追加」を選択し、「.NET」タブの中から「System.Management」を選択し「OK」を押します。これが今まで VB6 の時に行っていた参照設定の代わりのようなものになります。

これで実行するとまたエラーが発生すると思います。先程参照の追加をおこなった System.Management を名前空間としてインポートする必要があります。
Form1 クラスの前で、

Imports System.Management

と書いておくと System.Management 名前空間が定義され、用意されている各種クラスが初めて使用できるようになります。

さて実行してみましょう。現在実行中の各プロセスが表示されたはずです。

簡単にソースを説明していくと、
ManagementObjectSearcher クラスで WQL で取得したい情報の構文を記述し、Get メソッドを使用してコレクションの取得を行います。 ManagementObjectCollection クラスが Get メソッドを使用して取得した結果を収める器になります。
あとは For Each 構文を使用してコレクションを解析していきます。ManagementObject クラスはコレクション解析時に使用しています。

今まで VB で WMI を使っていた人は大体手段は変わっていないことが解ると思います。ただ .NET Framewrok を使う必要があり抵抗感と開発環境に慣れないというのが問題点でしょうか。(笑)
(ちなみに Microsoft WMI Scripting V1.2 Library を参照すれば今までどおり使うことも可能です。OS 環境が Windows 2000 以前の OS で試している場合には「Microsoft WMI Scripting V1.1 Library」かも知れません…。)


ちなみに私自身はあまり .NET は好きじゃありません。作成したアプリケーションの起動が遅いのがどうも…です。あとは .NET Framewrok を勉強しなくてはいけないのが時間が無い私にとって一番の問題点だったりします。

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


ご意見・ご要望・ご感想をこちらのアンケートからお待ちしています
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 !! へのリンクはご自由に…相互リンクに関するお問い合わせはアンケートページからお願いします

∧ ページの先頭へ…