私はlptポートを介していくつかのデバイスを制御するためのプロジェクトに取り組んでいます。inpout32.dllを使用してポートへのrawアクセスを取得し、使用可能なすべてのLPTポートを列挙してI/O範囲を取得しようとしています。
デバイスマネージャを確認できるようになりましたが、自動化された方法はありますか?
今、私はWMIを使用しようとしていますが、動作するはずのサンプルコードが動作しません
Set wmiService = GetObject("winmgmts:\\.\root\cimv2")
Set parallelports = wmiService.ExecQuery("SELECT * FROM Win32_ParallelPort")
For Each port In parallelports
q = "SELECT * FROM Win32_PnPEntity WHERE PNPDeviceID = '" & port.PNPDeviceID & "'"
Set pnpentities = wmiService.ExecQuery(q)
For Each pnpentity In pnpentities
wscript.echo pnpentity.PNPDeviceID
Next
Next
オンライン'各pnpentityInpnpentities'エラーが発生します。また、対応するエンティティを見つけることが私を助けるかどうかはわかりません。
PS。最後に、lpt i/oポート範囲を列挙する方法を理解しました。
Set wmiService = GetObject("winmgmts:\\.\root\cimv2")
Set parallelports = wmiService.ExecQuery("SELECT * FROM Win32_ParallelPort")
For Each port In parallelports
Set port_resources = wmiService.ExecQuery("ASSOCIATORS OF {Win32_ParallelPort.DeviceID='" & port.DeviceID & "'} WHERE ResultClass = Win32_PortResource")
For Each port_resource In port_resources
wscript.echo port_resource.Caption
Next
Next