【发布时间】:2010-07-24 14:59:12
【问题描述】:
我正在研究通过 lpt 端口控制一些设备的项目。 我正在使用 inpout32.dll 获取对端口的原始访问权限,现在尝试枚举所有可用的 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
在线'对于 pnpentities 中的每个 pnpentity' 我得到错误。 如果找到相应的实体对我有帮助,我也不确定。
附言。 最后我想出了如何枚举 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
【问题讨论】: