• 欢迎访问奇跡の海网站,本站不上传任何资源,所有资源均来自于网络,欢迎加入奇跡の海~!奇跡の海-WordPress QQ群
  • 本站下载资源为网络上收集整理而来,并且以计算机技术研究交流为目的,版权归原作者所有,仅供大家参考,学习,不存在任何商业目的与商业用途.
  • 本站系统镜像均来自于官方原版,ed2k可视为P2P下载链接。所有操作系统默认均为试用版,如有正版密钥可以有效激活,本站不提供任何激活和相关服务。

AutoIt3(AU3源码)一键静默系统驱动备份工具

AutoIT3 奇跡の海 2年前 (2017-05-31) 461次浏览 已收录 0个评论 扫描二维码

AutoIt3(AU3源码)一键静默系统驱动备份工具

简介

;程序名称 一键静默系统驱动备份工具

源码


;程序名称    一键静默系统驱动备份工具
;程序作者    一同
;版权所属    无忧天空
;支持网站    http://bbs.sky808.com
 
;---------------------------------------
 
Global Const $hklm="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\"
ToolTip(@CR&"程序正在备份驱动"&@CR,@DesktopWidth-260,@DesktopHeight-120)
Local $i=1
While 1
$Class=$hklm&RegEnumKey($hklm,$i)&"\"
If @Error Then ExitLoop
Local $j=1
While 2
$InClass=$Class&RegEnumKey($Class,$j)
If @Error Then ExitLoop
;判断是否匹配备份
If RegRead($InClass,"DriverDesc") And RegRead($InClass,"ProviderName")<>"Microsoft" Then
Local $DrvName=RegRead($Inclass,"DriverDesc")
Local $InfName=RegRead($Inclass,"InfPath")
Local $InfPath=@WindowsDir&"\inf\"&$InfName
FileCopy($InfPath,_Target($DrvName),1)
Local $Catalog=IniRead($InfPath,"Version","CatalogFile","NULL")
If $Catalog<>"NULL" Then
Global $Exist=""
_Seek(@WindowsDir,$Catalog)
FileCopy($Exist&"\"&$Catalog,_Target($DrvName),1)
EndIf
Local $DrvItem=IniReadSection(@WindowsDir&"\inf\"&$InfName,"SourceDisksFiles")
If Not @Error Then
;循环查找驱动文件
Local $k=1
While $k<=$DrvItem[0][0]
If FileExists(@WindowsDir&"\"&$DrvItem[$k][0]) Then
$DrvEnum=@WindowsDir&"\"
ElseIf FileExists(@WindowsDir&"\inf\"&$DrvItem[$k][0]) Then
$DrvEnum=@WindowsDir&"\inf\"
ElseIf FileExists(@WindowsDir&"\help\"&$DrvItem[$k][0]) Then
$DrvEnum=@WindowsDir&"\help\"
ElseIf FileExists(@WindowsDir&"\System32\"&$DrvItem[$k][0]) Then
$DrvEnum=@WindowsDir&"\System32\"
ElseIf FileExists(@WindowsDir&"\System32\Drivers\"&$DrvItem[$k][0]) Then
$DrvEnum=@WindowsDir&"\System32\Drivers\"
Else
Global $Exist=""
$DrvEnum=_Seek(@WindowsDir,$DrvItem[$k][0])&"\"
EndIf
FileCopy($DrvEnum&$DrvItem[$k][0],_Target($DrvName),1)
$k+=1
WEnd
EndIf
EndIf
$j+=1
WEnd
$i+=1
WEnd
MsgBox(0+64,"ok","驱动备份成功!")

Func _Seek($Dir,$Key)
If StringRight($Dir,1)<>"\" Then $Dir=$Dir&"\"
$search=FileFindFirstFile($Dir&"*.*")
While 1
$File=FileFindNextFile($search)
If @error Then ExitLoop
If StringInStr(FileGetAttrib($Dir&$File),"D") Then
_Seek($Dir&$File,$Key)
If FileExists($Dir&$File&"\"&$Key) Then
$Exist=$Dir&$File
ExitLoop
EndIf
EndIf
WEnd
FileClose($search)
Return $Exist
EndFunc
Func _Target($DriverName)
        Local $BackUp = @ScriptDir & "\Back\" & $DriverName
        $BackUp = StringRegExpReplace($BackUp,"[/]","_")
        $BackUp = StringRegExpReplace($BackUp,"[?]","_")
        $BackUp = StringRegExpReplace($BackUp,"[\]","_")
        $BackUp = StringRegExpReplace($BackUp,"[|]","_")
        $BackUp = StringRegExpReplace($BackUp,"[*]","_")
        $BackUp = StringRegExpReplace($BackUp,"[<]","_")
        $BackUp = StringRegExpReplace($BackUp,"[>]","_")
        ;创建目录
        If Not FileExists($BackUp) Then
                DirCreate($BackUp)
        EndIf
        Return $BackUp
EndFunc


版权声明:本站所有文章和资源使用CC BY-NC-SA 4.0协议授权发布 , 转载应当以相同方式注明文章来自“SeaOMC.COM->AutoIt3(AU3源码)一键静默系统驱动备份工具!在下边可以分享本文哦!
喜欢 (0)
[]
分享 (0)
奇跡の海
关于作者:
一个WordPress菜鸟!
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址