下面是获取硬件设备范例ID的代码,并能实现在设备管理器中禁用或启用硬件,我第一帖的代码是想除了在设备管理器中禁用(设备管理器中禁用后有管理员权限很容易就可以手动开启了),在注册表里更改键值,一般人不知道去哪里更改。以下代码全部参考Pusofalse的代码,特别声明。$testdata = InputBox("你好","这是一个测试程序","请输入要测试对象名","")
Local $hDevs, $tDevInfo, $sDeviceID,$aMouse[1][2] = [[0]]
$hDevs = _SetupDiGetClassDevs($DIGCF_PRESENT, $testdata)
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
MsgBox(0,"1",$aMouse[$aMouse[0][0]][1])
;FileWriteLine(@DesktopDir&"\1.log",$aMouse[$aMouse[0][0]][1] & @CRLF)
$sDeviceID = $aMouse[$aMouse[0][0]][1]; 硬件设备范例ID。
_SetupDiCreateDeviceDevs($sDeviceID, $hDevs, $tDevInfo)
$fResult = _SetupDiDisableDevice($hDevs, $tDevInfo, True) ; 禁用
If $fResult = True Then
Msgbox(0, "", $testdata&"禁用成功")
Else
Msgbox(0, "", "错误码:" & @error)
EndIf
$fResult = _SetupDiDisableDevice($hDevs, $tDevInfo, False) ; 启用。
_SetupDiDestroyDeviceInfoList($hDevs) ; 销毁设备信息集。
WEnd
|