找回密码
 加入
搜索
查看: 2471|回复: 3

[AU3基础] 怎么能够很方便的得到某个设备的所有硬件ID

[复制链接]
发表于 2011-2-6 22:57:40 | 显示全部楼层 |阅读模式
本帖最后由 jd19970829 于 2011-2-7 17:37 编辑

如果我想得到某个设备的所有硬件ID,比如显示器吧。我用devcon.exe hwids monitor*这个工具这样就可以把显示器有关的所有硬件ID全部显示出来,而我看了P老大的使用SetupApi.au3进行某个硬件ID查找示例
#include <SetupApi.au3>
; 枚举系统中的所有鼠标设备:
Local $hDevs, $tDevInfo, $aMouse[1][2] = [[0]]
$hDevs = _SetupDiGetClassDevs($DIGCF_PRESENT, "Mouse")
While _SetupDiEnumDeviceInfo($hDevs, $aMouse[0][0], $tDevInfo)
        $aMouse[0][0] += 1
        $sDescr = _SetupDiGetDeviceRegistryProperty($hDevs, $tDevInfo, $SPDRP_DEVICEDESC)
        $sName = _SetupDiGetDeviceRegistryProperty($hDevs, $tDevInfo, $SPDRP_FRIENDLYNAME)
        If $sName <> "" Then $sDescr = $sName
        Redim $aMouse[$aMouse[0][0] + 1][2]
        $aMouse[$aMouse[0][0]][0] = $sDescr        ; 鼠标描述信息
        $aMouse[$aMouse[0][0]][1] = _SetupDiGetDeviceInstanceID($hDevs, $tDevInfo) ; 设备范例ID
WEnd
; 枚举网卡只需把"Mouse"改为"Net",磁盘则对应DiskDrive,显卡对应Display。
_SetupDiDestroyDeviceInfoList($hDevs)
_Arraydisplay($aMouse)
我没有完全看懂,因为有好些函数我都不知道是做什么用的,还有它们的参数是什么意思,怎么得来,所以我想问问,有没有简单一点的函数能够像devcon.exe hwids monitor*这个工具这样,只带入需要查找的硬件中的某个字符串,比如说显示器是display\monitor,我只带入"monitor"这个参数就能返回所有的关于显示器的硬件ID条目。虽然我找到一个几乎能实现此功能的函数_CM_Get_Device_ID_List_Ex,但是还是有很多的局限,比如说我想得到显示器的硬件ID,只能带入display这个参数,而不能使用monitor这个参数,这样就会有其他一些问题,比如说我想得到显卡的硬件ID,而显卡的硬件ID是pci\****,但是PCI\***也包括了其他一些硬件,比如网卡或者其他的PCI设备,这样就得不到我需要的结果。
 楼主| 发表于 2011-2-7 17:38:24 | 显示全部楼层
等待版主的解答
发表于 2011-2-7 20:33:36 | 显示全部楼层
太深奥了,完全看不懂,等待高手!帮你顶一下!
 楼主| 发表于 2011-2-8 04:04:25 | 显示全部楼层
P老大,帮帮忙啊。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 18:31 , Processed in 0.078460 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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