haijie1223 发表于 2011-5-31 17:19:43

[已解决]请教p版,用纯au3怎么更改计算机类型和磁盘控制器类型

本帖最后由 haijie1223 于 2011-6-2 13:45 编辑

因为想写一个部署工具,所以要解决一个问题,就是“计算机”要改为“standardPC”,“磁盘控制器”要更改为“标准双通道IDE”。
因为有前辈的努力,用第三方面工具devcon可以做到。但是这样还需要fileinstall,用纯au3可否实现这种功能,请教一下p版。在此谢过!
如图:

pusofalse 发表于 2011-5-31 20:36:14

修改类名,还是设备名?“磁盘控制器”在哪呢?

平常中的平凡 发表于 2011-5-31 21:17:06

学习中,顶起

hzxymkb 发表于 2011-5-31 23:47:59

其实封装系统没有必要进行这样子的操作!
你可以看看我的那个开源的那个源码!

hzxymkb 发表于 2011-5-31 23:49:11

devcon这个是用来卸载驱动程序用的,只要你将驱动卸载就可以了!

haijie1223 发表于 2011-6-1 08:42:09

回复 2# pusofalse


    p版你好 可能是我表达不好就是如图的样子,我说的磁盘控制器就是ide ata那一项,
把intel(r) ich7 famaily 和 intel(r)n10/ich7 family这两项更新驱动为“标准双通道ide”

还有下面的“计算机”项目里面的“acpi multiprocessor PC”更新驱动为“standard PC”

不知道我这样说p版能看明白我的意思么

zw196512 发表于 2011-6-1 13:41:00

学习学习,顶一个~~{:face (270):}

pusofalse 发表于 2011-6-1 17:49:44

不必更新驱动,直接重命名就可以。
#include <SetupAPI.au3>

$fStatus = _RenameDeviceByDisplayName("ACPI Multiprocessor PC", "standardPC")

If ($fStatus) Then
        MsgBox(48, "OK", "Done.")
Else
        MsgBox(48, "Error", "Failed.")
EndIf

Func _RenameDeviceByDisplayName($sDisplayName, $sNewName)
        Local $sDeviceId, $hDevs, $tDevInfo, $fStatus

        $sDeviceID = _CM_Get_Device_ID_By_Name_Ex($sDisplayName)
        If ($sDeviceID = "") Then Return 0

        If Not _SetupDiCreateDeviceDevs($sDeviceID, $hDevs, $tDevInfo) Then
                Return 0
        EndIf

        $fStatus = _SetupDiSetDeviceRegistryProperty( _
                        $hDevs, $tDevInfo, $CM_DRP_FRIENDLYNAME - 1, _
                        $sNewName, StringLen($sNewName) * 2, "str")

        _SetupDiDestroyDeviceInfoList($hDevs)
        Return $fStatus
EndFunc        ;==>_RenameDeviceByDisplayName

haijie1223 发表于 2011-6-1 18:31:24

回复 8# pusofalse


    非常感谢p版,请教p版,这样直接重命名,和更新驱动得到的结果,效果一样么,对部署没有影响吧?

pusofalse 发表于 2011-6-1 20:47:25

回复 9# haijie1223


   没有区别,更新驱动时也是调用SetupDiSetDeviceRegistryProperty命名设备的。
页: [1]
查看完整版本: [已解决]请教p版,用纯au3怎么更改计算机类型和磁盘控制器类型