WMIを使用すると、ハードウェア情報、ソフトウェア情報など様々な情報を所得することが出来ます。
WMIを使用するためには、「System.Management.dll」を参照する必要があります。
ManagementObjectSearcher、ManagementObjectクラスを使用して情報を取得得します。
現在起動中のプロセスを取得する
Dim MS = New System.Management.ManagementObjectSearcher()
Dim MC As System.Management.ManagementObjectCollection
MS.Query.QueryString = "SELECT * FROM Win32_Process"
MC = MS.Get()
For Each MO As System.Management.ManagementObject In MC
Dim s = MO("Description").ToString() & ":" & MO("ProcessId").ToString()
Console.WriteLine("{0}", s)
Next
・検索はSQL文と同じようなものです。
選択の内容は、WMI/MI/OMI Providersを見てください。
ちなみに”Win32_Process”は、CIMWin32 WMI Providers > Win32 Provider > Operating System Classes > Win32_Process class にあります。
シリアルポートのデバイス名を取得する
Dim MS = New System.Management.ManagementObjectSearcher()
Dim MC As System.Management.ManagementObjectCollection
MS.Query.QueryString = "SELECT * FROM Win32_SerialPort"
MC = MS.Get()
For Each MO As System.Management.ManagementObject In MC
Dim s = MO("Name").ToString()
Console.WriteLine("{0}", s)
Next
※プロセス取得との違いは、QueryStringの選択文字列と項目の名前だけです。