2003-06-30 12011歩

λ WMIでシリアルポートを列挙してみる

CIM_LogicalDevice という奴で列挙したものを適当にフィルタリングするとそれっぽい感じ。

wql = "SELECT * FROM CIM_LogicalDevice "
wql = wql & "WHERE CreationClassName='Win32_SerialPort' OR DeviceID LIKE '%PORTS%'"

Set Locator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set Service = Locator.ConnectServer
Set devices = Service.ExecQuery(wql)
For Each dev in devices
  WScript.Echo dev.Name & vbTab & dev.CreationClassName & vbTab & dev.DeviceID
Next

COM??の番号の最大値を取る方法、ここから正規表現で引き抜けば大丈夫そうではあるが、もう少しうまく取る方法はないものか。

[]