如何区分是物理光驱和虚拟光驱?
用 $var = DriveGetDrive("cdrom") 获取所有光驱后,如何区分是物理光驱和虚拟光驱? 你狂读光驱 然后监视硬盘的读操作 发现数据量突然增大应该就是虚拟光驱了 虚拟光驱返回的是cdrom吗?好像不是吧 回复 3# netegg是的~
Func _Drive_Optical_Type( $Drive, $Computer = ".")
If DriveGetType($Drive) <> "CDROM" Then Return SetError(1)
Local $oRtn = ""
$Drive = StringUpper($Drive)
$Obj_CD = ObjGet("winmgmts:\\" & $Computer & "\root\cimv2")
$Items = $Obj_CD.ExecQuery("Select * from Win32_CDROMDrive WHERE Id = '" & $Drive & Chr(39))
For $Item in $Items
$oRtn = StringMid($Item.DeviceID, StringInStr($Item.DeviceID, "_")+1)
If StringInStr($oRtn, "Virtual") Then
$oRtn = StringMid($oRtn, StringInStr($oRtn, "Virtual"))
$oRtn = StringReplace($oRtn, "_", " ", 1)
$oRtn = StringLeft($oRtn, 15)
Else
$oRtn = StringLeft($oRtn, StringInStr($oRtn, "_") -1)
EndIf
Next
If $oRtn = "" Then Return SetError(1)
Return $oRtn
EndFunc;<==> _Drive_Optical_Type()官网上找的,蛋蛋不会wmi 谢谢netegg的wmi,如不用WMI,可否还有其它方法判断? 貌似目前的虚拟光驱都是SCSI了吧? 回复 7# 3mile
现在的存储设备,实体的或者虚拟的,分的有点乱,还真不好说啥是啥 回复 7# 3mile
现在的设备接口,好像挺乱的,实体的和虚拟的 回复 9# netegg
嗯,蛋蛋兄说的有道理
否则那些做光盘加密的厂家也要没事干了哈。
页:
[1]