找回密码
 加入
搜索
查看: 16051|回复: 26

[网络通信] 如何 读取串行总线控制器的 USB名称

[复制链接]
发表于 2020-11-8 14:55:41 | 显示全部楼层 |阅读模式
悬赏20金钱已解决
AU3可以通过DriveGetDrive 枚举驱动器的数组,然后用 DriveGetType(path,$DT_BUSTYPE (3))来获取驱动器的总线类型(但是呢,不返回名称,只有Unknown"(未知), "SCSI", "ATAPI 等等);同样通过读取 注册表信息,KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\USBSTOR\Enum 也可以查看,不过也只能是获取USB的使用记录;
我现在希望获取串行总线控制器里的 USB名称,这个USB名称读取,我们可以通过手动 点击设备管理器,打开通用串行总线控制器查看。
现在如果想用AU3直接读取 USB名称 ,有没有更好的办法? 谢谢各位大佬了 (第一次尝试发布悬赏)


发表于 2020-11-8 14:55:42 | 显示全部楼层
Dim $oWMI, $objs
$oWMI = ObjGet("WinMgmts:")
$objs = $oWMI.InstancesOf("CIM_USBDevice")
For $obj In $objs
        ConsoleWrite('名称:' & $obj.name & @CRLF )
Next
$obj = 0
$objs = 0
$oWMI =0 

评分

参与人数 1金钱 +20 收起 理由
itzyx + 20 先点个赞 ! 设计到本菜鸟的知识盲区了, .

查看全部评分

发表于 2020-11-8 17:20:51 | 显示全部楼层
https://docs.microsoft.com/zh-tw ... for-testing-drivers
devcon listclass USB 或者 pnputil /enum-devices /connected /class USB
发表于 2020-11-8 22:39:38 | 显示全部楼层
建议下载devcon的代码研究一下,一看便知
 楼主| 发表于 2020-11-9 00:33:01 | 显示全部楼层
haijie1223 发表于 2020-11-8 22:39
建议下载devcon的代码研究一下,一看便知

好的 谢谢 发哥
 楼主| 发表于 2020-11-9 00:33:26 | 显示全部楼层
繁星 发表于 2020-11-8 17:20
https://docs.microsoft.com/zh-tw/windows-hardware/drivers/devtest/tools-for-testing-drivers
devcon  ...

谢谢 大佬,待我研究一下,英语水平有点差
发表于 2020-11-9 00:43:03 | 显示全部楼层
发表于 2020-11-9 02:32:36 | 显示全部楼层
应该可以直接读注册表获取吧
 楼主| 发表于 2020-11-9 08:29:20 | 显示全部楼层
afan 发表于 2020-11-9 02:32
应该可以直接读注册表获取吧

A大  可以吗?我找了 半天 都没找到方法,只有个USB历史使用记录
 楼主| 发表于 2020-11-9 08:30:16 | 显示全部楼层
haijie1223 发表于 2020-11-9 00:43
https://www.baidu.com/baidu?word=devcon%D4%B4%C2%EB&_si=%25CB%25D1%25CB%25F7&tn=menilui_pg&fyb=0&t ...

好的 好的  实在感谢  
发表于 2020-11-9 12:44:39 | 显示全部楼层
itzyx 发表于 2020-11-9 08:29
A大  可以吗?我找了 半天 都没找到方法,只有个USB历史使用记录

你没具体说获取什么字符,懒得打字可以贴图
 楼主| 发表于 2020-11-9 13:38:46 | 显示全部楼层
afan 发表于 2020-11-9 12:44
你没具体说获取什么字符,懒得打字可以贴图

诸如此类的 字符串, 字母加数字

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2020-11-9 14:18:30 | 显示全部楼层
到注册表以下位置找找就有
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}
 楼主| 发表于 2020-11-9 15:18:55 | 显示全部楼层
afan 发表于 2020-11-9 14:18
到注册表以下位置找找就有
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF- ...

A大 这里面有 180多项,怎么知道 具体哪个是我要读取的名称呢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2020-11-9 15:30:46 | 显示全部楼层
本帖最后由 afan 于 2020-11-9 15:32 编辑

我怎么知道你要哪个?只有你自己才清楚要干什么获取什么…
给你写段代码获取所有,可以自己添加条件过滤出需要的
Msgbox(0, '', _GetUSBDriverDesc())

Func _GetUSBDriverDesc()
        Local $sHKey = 'HKLM64\SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}'
        Local $sInfo = '', $sDriverDesc, $ii = 1
        While 1
                $sSubKey = RegEnumKey($sHKey, $ii)
                If @error Then ExitLoop
                $ii += 1
                $sDriverDesc = RegRead($sHKey & '\' & $sSubKey, 'DriverDesc')
                $sInfo &= $sDriverDesc & @CRLF
        WEnd
        Return $sInfo
EndFunc   ;==>_GetUSBDriverDesc
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-24 22:19 , Processed in 0.081539 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表