jd19970829 发表于 2011-2-6 00:55:41

SetupApi怎样获得硬件hDevInst

本帖最后由 jd19970829 于 2011-2-6 01:05 编辑

我正在使用
Func _CM_Restart_Device($hDevInst)
这个函数,可是我不知道怎样能够得到$hDevInst。

pusofalse 发表于 2011-2-6 01:06:46


#include <SetupAPI.au3>

$sDeviceId = "HID\VID_093A&PID_2510\6&331CF27B&5&0000"

$hDevInst = _CM_Locate_DevNode($sDeviceId)
If _CM_Restart_Device($hDevInst) Then
        MsgBox(48, "OK", "Done.")
Else
           MsgBox(48, "Error", "Error code: " & @error)
EndIf

pusofalse 发表于 2011-2-6 01:22:01

- -||| 改标题很快。

$hDevInst参数是设备句柄,通常返回于_CM_Locate_DevInst函数,它的第一个参数$sDeviceId是 设备范例ID字符串(Device Instance Identifier String),在系统中是唯一的,用来定位一个独立的设备。如果你事先不知道这个字符串,可以根据 设备在设备管理器中 的显示名称调用_CM_Get_Device_ID_By_Name_Ex获取到。如果你也不知道设备的显示名称,可以调用_CM_Enum_Device_Info枚举所有的设备,再调用_CM_Get_DevNode_Registry_Property获取每个设备的相关属性,根据属性决定 使用哪个设备。再或者,如果你没有从属性中分离出有用的信息进而判断出重启哪个设备,那我也没办法了。

jd19970829 发表于 2011-2-6 02:33:15

多谢P老大,我已经明白改怎么做了。
页: [1]
查看完整版本: SetupApi怎样获得硬件hDevInst