|
本帖最后由 yhxhappy 于 2010-12-10 15:38 编辑
我想做一个自动安装RAID卡驱动的小程序,通常RAID卡的驱动都是INF形式的,使用了论坛上搜索到的如下方法安装失败,执行后没有任何反应,刷新设备管理器还是未安装驱动状态。但是在设备管理器里面,点击硬件手动更新驱动,然后指定路径到INF文件却是可以安装上的,现请教各位有没有别的方法能安装上的,或者是我的操作方法有问题。
Run("rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 .\xxx.inf")
或者:Run(@ComSpec & " /c " & 'rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 .\xxx.inf', "", @SW_HIDE)
另外,以前发帖的时候,P版提到过如下内容,第三种方式不适用,对于第一及第二种安装方式,P版能不能讲解一下呢?
SetupAPI.au3 提供3种驱动更新方式:
1、_CM_Install_DevInst_Ex,与设备管理器安装驱动的方式相同,可以指定光盘安装,也可以手动选择。
2、_CM_Install_Device_Driver,除了兼容第一种方式外,还可以指定多种更新标识,比如 静默安装。
3、_CM_Update_PnP_Device,指定ini文件,ini中定义安装参数。你所说的应该适于用这种方式安装。
_CM_Update_PnP_Device原型:
_CM_Update_PnP_Device($sDeviceID, $sInfPath, $iFlags, $hWnd = 0)
$sDeviceID - 要更新驱动的设备的硬件ID。
$sInfPath - INF路径。
$iFlags - 安装标识,一般指定为0即可。更多选项请参考http://msdn.microsoft.com/en-us/library/ff553534(VS.85).aspx
$hWnd - 父窗口句柄,可以指定为0。
硬件ID不同于设备范例ID,要获取一个设备的硬件ID,调用_CM_Get_DevNode_Registry_Property,传递CM_DRP_HARDWAREID属性值。
_CM_Update_PnP_Device,只能更新即插即用设备,对于非即插即用设备,用上面2种方法。
帖子放太久了,现在关闭。解决方法在10楼 |
|