For $x= 1 to 10 ;遍历所有摄像头实例 PID VID
$vvv = RegEnumVal("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbvideo\Enum", $x) ;扫描第一所有项目
If @error <> 0 then ExitLoop
$name=RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbvideo\Enum",$vvv) ;读摄像头PID与VID
;~ MsgBox(262144,"1",$name) ;调试
$name=StringReplace($name,"","#") ;格式化字段
$yanzheng=StringLeft($name,21) ;截取所需要的字段
$val=StringCompare("USB#Vid_XXXX&Pid_XXXX",$yanzheng) ;对比字段 判定PID VID正确否
If $val=0 Then ;如果硬件正确
Run("run.dll") ;运行主程序
ProcessWait("run.dll",5) ;等待程序运行
ProcessWaitClose("run.dll") ;等待程序退出
Exit
EndIf
Next
另外还有一个注册表选项For $x= 1 to 10 ;遍历所有摄像头实例 PID VID
$vvv = RegEnumVal("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\XXXX\Enum", $x) ;扫描第一所有项目
If @error <> 0 then ExitLoop
$name=RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\XXXX\Enum",$vvv) ;读摄像头PID与VID
;~ MsgBox(262144,"1",$name) ;调试
$name=StringReplace($name,"","#") ;格式化字段
$yanzheng=StringLeft($name,21) ;截取所需要的字段
$val=StringCompare("USB#Vid_XXXX&Pid_XXXX",$yanzheng) ;对比字段 判定PID VID正确否
If $val=0 Then ;如果硬件正确
这样就可以扫描一下当前USB有没有自己需要的摄像头。。。。本人原创,欢迎抛砖。
本人通过“Total_Uninstall”这个软件监测注册表改变而做出的。 |