打印

[Windows] 一键封装工具V3.0

一键封装工具V3.0

特别提示:以下仅为早期代码,欢迎研究学习,但请勿剽窃成为自己作品发布。V3.0后更新的内容非常多,请先参看Newprep历史更新记录:

★历史更新记录:
08/05/25 V5.0
测试XPSP3的sysprep(版本为5512)封装系统后会出现更新个人设置,
已经恢复为SP2的sysprep(2600.1106)。
08/05/05 V5.0
更新XP下的sysprep为5.1.2600.5512版本,完美支持SP3、SP2、SP1。
解决XPSP3在个别AMD平台上的安装失败的问题。
08/05/01 V5.0
改进封装技术,支持华硕笔记本,是否开启AHCI都不会出现蓝屏问题,
更新Intel驱动,增加对一些新型迅驰笔记本的支持(如索尼、惠普),
更新部分SIS驱动,增加对SIS几种RAID控制器的支持(Class为0101),
改进键盘、鼠标、USB驱动的集成方式,特别针对XPSP3做了一些调整。
08/04/01 V4.9
修正JMicron驱动的inf文件中JGOGO的错误,升级nvgts为10.3.0.16。
改进Intel驱动写法,改进对卡巴斯基的支持,增加封装VISTA功能。
注:封装VISTA仅作内部测试,有意参与测试请联系作者。
08/03/18 v4.8
支持封装英文版和繁体版(仅测试XP),在繁体系统中显示为英文界面,
加入游戏热键,加入对桌面分辨率的设置(当显卡可以驱动时有效),
可支持1024*768(默认),1280*800(笔记本宽屏),1440*900(19宽屏),
锁定分辨率,解决弹出窗口“找到新的硬件向导:即插即用监视器”,
取消注册组件窗口置顶,进一步提速,最后刷新分辨率后立即重启。
锁定授权用户使用的最小化安装背景图片,他人下载并替换后无效。
增加对无D盘的支持,可将要释放到D盘的文件移动到桌面文件夹内。
检测到笔记本,自动开启小键盘,并启动无线、红外及VPN服务。
集成USB接口电涌补丁,解决VISTA下运行错误(不支持封装VISTA)
附加彩蛋:与小兵驱动选择工具搭配使用效果更佳。
08/03/01 V4.7
完美支持WINXPSP3,实际测试在目前最新的中文版XPSP3.3300下通过。
增加对780G主板AHCI的支持(08年2月上市的DX10主板,SB700南桥)
改进封装代码避免更改IDE和电源报错,优化部署过程缩短注册组件时间。
由于卡巴斯基2月27日以后的病毒库会误报,此版本已解决了误报问题。
08/02/01 V4.5
全功能开放试用模式,增加对注册表中的系统及软件历史记录的清理。
08/01/29 V4.5
更新SATA驱动,解决部分GIGA、MSI和ASUS的ICH8/ICH9主板蓝屏问题。
优化接口调用,第一次进桌面优先运行接口调用再清理残余SRS服务。
更新部署界面的内置层及透明层的效果,保证在不同分辨率下的效果。
增加自定义部署界面文字颜色,部分随机分配计算机名的功能。
08/01/12 V4.4
界面增加“高级选项”,可直接在此对配置文件进行设置,
优化清除autorun的代码,自动跳过软驱和未格式化的分区,
并增加对灰鸽子runauto...的清除(可删除隐藏文件夹),
只清除windows下的垃圾log文件,避免个别软件卸载出错,
默认的分辨率更改为1024x768,并提供两种分辨率的选择。
分离部署背景,添加半透明内置层,不会PS的朋友有福了
07/12/04 V4.3
更新扩展接口设置,增加“第一次进入桌面弹出设备管理器”
增加对卡巴斯基8.0的支持,更新了清理多余SRS驱动的代码,
可解决4.0在部分VIA和华硕主板上出现第二次重启蓝屏的问题。
增加对系统分区大小是否满足3GB的检测及是否存在D盘的检测。
07/11/22 V4.0
修正VM虚拟机安装蓝屏问题,改进小键盘判断方式为自动
改进清除右键菜单的代码,只清除显卡产生的多余右键菜单
改进清除MediaPlayer桌面快捷方式的代码,进桌面时已清除
修正驱动识别及电源判断问题,扩展接口增加对msc的支持
默认不覆盖Newprep.ini,可直接读取预先设置好的配置文件
07/11/16 V4.0
增加对冰点还原软件的支持,封装系统在其他机器上安装冰点无误
增加大量RAID设备驱动,更新AMD的CPU驱动为标准的1.3.2.0版本
增加AMDK8签名证书,对于AMD处理器可自动识别并安装驱动和证书
智能清除注册表中的用户信息,完美解决OUTLOOK不能保存密码的问题
增加对注册表历史记录的清除(最后打开的键的位置),自动收起注册表
智能判断笔记本,如果不是笔记本,第一次进入桌面时自动打开小键盘
可复制墙纸(C:\WINDOWS\Web\Wallpaper)到[我的文档]下的[图片收藏]
自动清理多余的桌面右键菜单,集成自主开发的SRS驱动服务清理助手
07/10/17 V3.7
增加对卡巴斯基的封装支持,只需封装前关闭卡巴的自我保护即可。
Newprep将更改卡巴斯基的服务启动方式,以避免封装后引起系统蓝屏。
分离了安装初始界面的背景,便于今后开发出不同的界面风格可选择。
修正了V3.3以后版本清理启动项导致杀毒软件的启动被清理的问题。
另外对封装结束后的清理工作又做了一些补充和完善。
07/10/04 V3.5
国庆特别版,修正了彻底关闭系统还原的功能(restore = 3),
采用新的方法删除Media Player桌面图标,即使新建用户也不会有。
智能清除母机硬件信息,使本机恢复时不会出现缺少驱动文件的提示。
安装界面增加状态提示,避免长时间等待时可能误认为安装被挂起。
调整工具界面,将清除AUTORUN及关闭系统还原列到了部署选择项。
清除Media Player图标及避免出现更新个人设置改为默认功能。
增加双重检测功能,确保引导文件ntldr不会丢失。
07/09/30 V3.3
由DEEPIN整理了截至07年10月最新的SATA驱动、USB驱动及键鼠驱动。
封装时自动清除oem*.inf文件,自动封装过程改为不重新分配SID。
恢复过程加入“sysprep.exe -clean”,使系统自动清理驱动服务。
调整第一次进入桌面的接口在进入桌面后运行,缩短进入桌面时间。
自动清除第一次进系统产生的显卡声卡托盘图标,重启后不再出现。
重写清除autorun病毒的代码,使清理更准确更迅速。
修正F8跳过安装后提示找不到newsetup的问题。
修正VMware虚拟机下封装后蓝屏的问题(确定是删除intelide引起)。
07/08/02 V3.0
修正2.3之后因校验系统版本引起的提取文件导致hal.dll丢失的问题,
增加自动设置系统失败的三个选项为不选,并设置不写入调试信息,
增加关闭“系统还原”的三项设置功能,可在配置文件中进行设置。
应大家要求,移动虚拟内存选项默认不更改,需要更改请自行设置。
07/07/31 V2.5
完善封装WIN2000系统的功能,实际测试封装各种版本均稳定无错。
由于一些过于精简的系统I386下没有SP(n).cab,将文件合并到driver.cab,
导致提取文件出现变量错误,此次更新已解决,可顺利封装各种精简系统。
改进了更改IDE的代码,以适应各种语言的系统(繁体、英文系统)。
卸载硬件更改到了封装之后,增加清除注册表intelppm及ide功能。
07/07/26 V2.4
更改跳过安装的热键为F8,修正第一次进桌面删除文件夹无效的问题,
改写删除autorun病毒的代码,程序将直接读取autorun.inf文件,
根据inf文件内指定的自动运行的病毒进行针对性删除。
07/07/16 V2.3
完善自动更改IDE功能及扩展接口设置,自动清除系统内的LOG、bak、
recent、IconCache缓存、回收站、系统事件,并隐藏驱动器及系统目录。
07/07/14 V2.2 增加跳过部署功能,增加随机分配IP及更改系统缓存功能。
07/07/12 V2.1 增加填写IP功能,增加手动运行sysprep选项。
07/07/10 V2.0 修正外部接口调用问题,增加漂亮的部署进度界面。
07/07/07 V1.0 发布第一个版本。





#include <GUIConstants.au3>
#Include <process.au3>
#NoTrayIcon
Opt("TrayMenuMode",1)
FileInstall("Dprep_.ini", @TempDir&"\Dprep.ini", 1)
dim $txt_[65]
for $x=0 to 9
$txt_[$x] = IniRead(@TempDir&"\Dprep.ini", "main", $x, "")
next
for $y=10 to 19
$txt_[$y] = IniRead(@TempDir&"\Dprep.ini", "prep", $y, "")
next
for $z=20 to 27
$txt_[$z] = IniRead(@TempDir&"\Dprep.ini", "setup", $z, "")
next
for $v=28 to 39
$txt_[$v] = IniRead(@TempDir&"\Dprep.ini", "extra", $v, "")
next
for $w=40 to 62
$txt_[$w] = IniRead(@TempDir&"\Dprep.ini", "sysprep", $w, "")
next
FileDelete(@TempDir&"\Dprep.ini")
;==============================================
$item_1 = TrayCreateItem($txt_[5]&"(&G)")
TrayCreateItem("")
$item_2 = TrayCreateItem($txt_[6]&"(&E)")
TrayCreateItem("")
$item_3 = TrayCreateItem($txt_[7]&"(&)")
TrayCreateItem("")
$item_4 = TrayCreateItem($txt_[4]&"(&A)")
TrayCreateItem("")
$item_5 = TrayCreateItem($txt_[8]&"(&X)")
TraySetState()
TrayTip($txt_[2] & $txt_[1], $txt_[57] & "  " & $txt_[58], 10, 1)
HotKeySet("!g", "devmgmt")
HotKeySet("!e", "openext")
HotKeySet("!p", "prep")
HotKeySet("!o", "cfgext")
HotKeySet("!x", "quit")
HotKeySet("!f", "quit")
HotKeySet("{Esc}", "quit")
Func quit()
ProcessClose("sysprep.exe")
ProcessClose(@Scriptname)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $main, "int", 300, "long", 0x00050010)
exit
EndFunc
Func devmgmt()
Run(@SystemDir&"\mmc.exe "[url=mailto:&@SystemDir&]&@SystemDir&"\devmgmt.msc[/url]")
Endfunc
Func openext()
GUISetState(@SW_SHOW, $ParentWin)
Endfunc
Func about()
msgbox(64, $txt_[1], $txt_[59] & @CR & $txt_[60]& @CR& @CR & $txt_[57] &" "& $txt_[58]& @CR & $txt_[61])
Endfunc
;==============================================
if @OSVersion='WIN_XP' then
if not @WindowsDir = "c:\windows" then
msgbox(16,"Dprep Tool", "Can not run in windows PE !")
exit
endif
endif
if @OSVersion="WIN32_WINDOWS" then
msgbox(16,"Dprep Tool", "Can not run in 95/98/me !")
exit
endif
;install file and dim
DirCreate(@HomeDrive & "\sysprep")
FileInstall("Dprep.ini", @HomeDrive & "\sysprep\Dprep.ini", 1)
if @OSVersion='WIN_XP' then
$OS="Microsoft Windows XP"
  Fileinstall('inc\xp\sysprep.exe', @HomeDrive & "\sysprep\sysprep.exe",0)
  Fileinstall('inc\xp\sysprep.inf', @HomeDrive & "\sysprep\sysprep.inf",0)
  Fileinstall('inc\xp\setupcl.exe', @HomeDrive & "\sysprep\setupcl.exe",0)
endif
if @OSVersion='WIN_2003' then
$OS="Microsoft Windows 2003"
  Fileinstall('inc\2003\sysprep.exe', @HomeDrive & "\sysprep\sysprep.exe",0)
  Fileinstall('inc\2003\sysprep.inf', @HomeDrive & "\sysprep\sysprep.inf",0)
  Fileinstall('inc\2003\setupcl.exe', @HomeDrive & "\sysprep\setupcl.exe",0)
endif
if @OSVersion='WIN_2000' then
$OS="Microsoft Windows 2000"
  Fileinstall('inc\2000\sysprep.exe', @HomeDrive & "\sysprep\sysprep.exe",0)
  Fileinstall('inc\2000\sysprep.inf', @HomeDrive & "\sysprep\sysprep.inf",0)
  Fileinstall('inc\2000\setupcl.exe', @HomeDrive & "\sysprep\setupcl.exe",0)
endif
for $i=1 to 4
if not fileexists(@windowsdir&"\driver cache\i386\SP"&$i&".cab") then
$cabf="driver.cab"
endif
next
for $i=1 to 4
if fileexists(@windowsdir&"\driver cache\i386\SP"&$i&".cab") then
$cabf="SP"&$i&".cab"
endif
next
if @OSServicePack='' then $sp=""
if @OSServicePack='Service Pack 1' then $sp="SP1"
if @OSServicePack='Service Pack 2' then $sp="SP2"
if @OSServicePack='Service Pack 3' then $sp="SP3"
if @OSServicePack='Service Pack 4' then $sp="SP4"
;==============================================
;GUI window
$main = GUICreate ($txt_[1]&" - Dprep v3.0",400,300,-1,-1)
FileInstall("logo_prep.jpg", @TempDir&"\logo_prep.jpg", 1)
GuiCtrlCreatePic(@TempDir&"\logo_prep.jpg", 0, 0, 400, 90)
FileDelete(@TempDir&"\logo_prep.jpg")
GUICtrlCreateLabel("___________________________________________________________________",0,266,400,12)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateLabel($txt_[0],260,281,16,16)
GUICtrlSetFont(-1, 16, 100, 0, "Verdana")
GUICtrlSetState(-1, $GUI_DISABLE)
$link=GUICtrlCreateLabel($txt_[3],280,284,110,12)
GUIctrlSetCursor($link,0)
$bar = GUICtrlCreateLabel($OS &" "& $sp & " Build " & @OSBuild,10,284,249,12)
;==============================================
;main window
$group_1 = GUICtrlCreateGroup ($txt_[10], 10, 100, 185, 137)
$box_01 = GUICtrlCreateCheckbox ($txt_[11], 20, 120, 165, 15)
GuiCtrlSetState(-1, $GUI_CHECKED)
$box_02 = GUICtrlCreateCheckbox ($txt_[12], 20, 139, 165, 15)
$box_03 = GUICtrlCreateCheckbox ($txt_[13], 20, 158, 165, 15)
$box_04 = GUICtrlCreateCheckbox ($txt_[14], 20, 177, 165, 15)
$box_05 = GUICtrlCreateCheckbox ($txt_[15], 20, 196, 165, 15)
GuiCtrlSetState(-1, $GUI_CHECKED)
$box_06 = GUICtrlCreateCheckbox ($txt_[16], 20, 215, 165, 15)

$group_2 = GUICtrlCreateGroup ($txt_[20], 205, 100, 185, 137)
$box_11 = GUICtrlCreateCheckbox ($txt_[21], 215, 120, 170, 15)
GuiCtrlSetState(-1, $GUI_CHECKED)
$box_12 = GUICtrlCreateCheckbox ($txt_[22], 215, 139, 170, 15)
GuiCtrlSetState(-1, $GUI_CHECKED)
$box_13 = GUICtrlCreateCheckbox ($txt_[23], 215, 158, 170, 15)
GuiCtrlSetState(-1, $GUI_CHECKED)
$box_14 = GUICtrlCreateCheckbox ($txt_[24], 215, 177, 170, 15)
GuiCtrlSetState(-1, $GUI_CHECKED)
$box_15 = GUICtrlCreateCheckbox ($txt_[25], 215, 196, 170, 15)
GuiCtrlSetState(-1, $GUI_CHECKED)
$box_16 = GUICtrlCreateCheckbox ($txt_[26], 215, 215, 170, 15)
GuiCtrlSetState(-1, $GUI_CHECKED)
$button_1 = GUICtrlCreateButton ($txt_[5]&"(&G)", 20, 245, 90, 24)
$button_2 = GUICtrlCreateButton ($txt_[6]&"(&E)", 125, 245, 80, 24)
$button_3 = GUICtrlCreateButton ($txt_[7]&"(&)", 220, 245, 70, 24)
$button_4 = GUICtrlCreateButton ($txt_[8]&"(&X)", 305, 245, 70, 24)
;==============================================
;extra setting window
$ParentWin = GUICreate($txt_[30], 450, 370, -1, -1, $WS_POPUP)
$extra1=IniRead(@HomeDrive & "\sysprep\Dprep.ini","newprep","Ext1","")
$extra2=IniRead(@HomeDrive & "\sysprep\Dprep.ini","newprep","Ext2","")
$extra3=IniRead(@HomeDrive & "\sysprep\Dprep.ini","newprep","Ext3","")
$extra4=IniRead(@HomeDrive & "\sysprep\Dprep.ini","newprep","setup","")
$extra5=IniRead(@HomeDrive & "\sysprep\Dprep.ini","firstrun","Run1","")
$extra6=IniRead(@HomeDrive & "\sysprep\Dprep.ini","firstrun","Run2","")
$extra7=IniRead(@HomeDrive & "\sysprep\Dprep.ini","firstrun","Run3","")
$extra8=IniRead(@HomeDrive & "\sysprep\Dprep.ini","firstrun","delfolder","")
$group_0 = GUICtrlCreateGroup ($txt_[30], 5, 5, 440, 360)
GUICtrlCreateLabel($txt_[31], 45,40,360,15)
GUICtrlCreateLabel($txt_[32], 45,60,360,15)
GUICtrlCreateLabel($txt_[37], 45,280,360,15)
GUICtrlCreateLabel($txt_[38], 45,300,360,15)
$text_1 = GUICtrlCreateLabel ($txt_[33], 25, 100, 150, 15)
$input1 = GUICtrlCreateInput($extra1, 25, 120, 150, 20, -1)
$open_1 = GUICtrlCreateButton ("...", 180, 120, 30, 20)
$input2 = GUICtrlCreateInput($extra2, 25, 150, 150, 20, -1)
$open_2 = GUICtrlCreateButton ("...", 180, 150, 30, 20)
$input3 = GUICtrlCreateInput($extra3, 25, 180, 150, 20, -1)
$open_3 = GUICtrlCreateButton ("...", 180, 180, 30, 20)
$text_4 = GUICtrlCreateLabel ($txt_[34], 25, 220, 150, 15)
$input4 = GUICtrlCreateInput($extra4, 25, 240, 150, 20, -1)
$open_4 = GUICtrlCreateButton ("...", 180, 240, 30, 20)
$text_5 = GUICtrlCreateLabel ($txt_[35], 240, 100, 150, 15)
$input5 = GUICtrlCreateInput($extra5, 240, 120, 150, 20, -1)
$open_5 = GUICtrlCreateButton ("...", 395, 120, 30, 20)
$input6 = GUICtrlCreateInput($extra6, 240, 150, 150, 20, -1)
$open_6 = GUICtrlCreateButton ("...", 395, 150, 30, 20)
$input7 = GUICtrlCreateInput($extra7, 240, 180, 150, 20, -1)
$open_7 = GUICtrlCreateButton ("...", 395, 180, 30, 20)
$text_8 = GUICtrlCreateLabel ($txt_[36], 240, 220, 150, 15)
$input8 = GUICtrlCreateInput($extra8, 240, 240, 150, 20, -1)
$open_8 = GUICtrlCreateButton ("...", 395, 240, 30, 20)
$ok = GUICtrlCreateButton ($txt_[39]&"(&O)", 180, 325 , 100, 30)
;==============================================

GUISetState(@SW_SHOW, $main)
While 1
;----------------------------------------------
$msg = GUIGetMsg()
Select
;button for setting extra
Case $msg = $open_1
$ExtFile1 = FileOpenDialog ("", @HomeDrive, $txt_[28] & "(*.exe; *.bat; *.com)", "9")
  IF $ExtFile1 Then
  GUICtrlSetData($input1,$ExtFile1)
  EndIf
Case $msg = $open_2
$ExtFile2 = FileOpenDialog ("", @HomeDrive, $txt_[29] & "(*.exe; *.bat; *.com)", "9")
  IF $ExtFile2 Then
  GUICtrlSetData($input2,$ExtFile2)
  EndIf
Case $msg = $open_3
$ExtFile3 = FileOpenDialog ("", @HomeDrive, "(*.exe; *.bat; *.com)", "9")
  IF $ExtFile3 Then
  GUICtrlSetData($input3,$ExtFile3)
  EndIf
Case $msg = $open_4
$ExtFile4 = FileOpenDialog ("", @HomeDrive, "(*.exe; *.bat; *.com)", "9")
  IF $ExtFile4 Then
  GUICtrlSetData($input4,$ExtFile4)
  EndIf
Case $msg = $open_5
$ExtFile5 = FileOpenDialog ("", @HomeDrive, "(*.exe; *.bat; *.com)", "9")
  IF $ExtFile5 Then
  GUICtrlSetData($input5,$ExtFile5)
  EndIf
Case $msg = $open_6
$ExtFile6 = FileOpenDialog ("", @HomeDrive, "(*.exe; *.bat; *.com)", "9")
  IF $ExtFile6 Then
  GUICtrlSetData($input6,$ExtFile6)
  EndIf
Case $msg = $open_7
$ExtFile7 = FileOpenDialog ("", @HomeDrive, "(*.exe; *.bat; *.com)", "9")
  IF $ExtFile7 Then
  GUICtrlSetData($input7,$ExtFile7)
  EndIf
Case $msg = $open_8
$ExtFile8 = FileSelectFolder ("", "c:\", "5", @HomeDrive & "\driver")
  IF $ExtFile8 Then
  GUICtrlSetData($input8,$ExtFile8)
  EndIf
;----------------------------------------------
;button for devmgmt.msc
Case $msg = $button_1
  devmgmt()
;----------------------------------------------
;button for extra-window
Case $msg = $button_2
  openext()
Case $msg = $ok
  cfgext()
;----------------------------------------------
;button for starting sysprep
Case $msg = $button_3
  prep()
;----------------------------------------------
;link to deepin
Case $msg = $link
  run(@ProgramFilesDir & "\Internet Explorer\IEXPLORE.EXE http://bbs.deepin.org")
;----------------------------------------------
;button for exit
Case $msg = $GUI_EVENT_CLOSE or $msg = $button_4
  Opt("TrayIconHide", 1)
  quit()
EndSelect
;----------------------------------------------
    $msg = TrayGetMsg()
    Select
        Case $msg = 0
            ContinueLoop
        Case $msg = $item_1
    devmgmt()
        Case $msg = $item_2
    openext()
        Case $msg = $item_3
            prep()
        Case $msg = $item_4
            about()
        Case $msg = $item_5
            ExitLoop
    EndSelect
Wend
;==============================================
func cfgext()
$input_1 = GUICtrlRead($input1)
$input_2 = GUICtrlRead($input2)
$input_3 = GUICtrlRead($input3)
$input_4 = GUICtrlRead($input4)
$input_5 = GUICtrlRead($input5)
$input_6 = GUICtrlRead($input6)
$input_7 = GUICtrlRead($input7)
$input_8 = GUICtrlRead($input8)
if $input_1 <> "" then
IniWrite(@HomeDrive & "\sysprep\Dprep.ini", "newprep", "Ext1", $input_1)
endif
if $input_2 <> "" then
IniWrite(@HomeDrive & "\sysprep\Dprep.ini", "newprep", "Ext2", $input_2)
endif
if $input_3 <> "" then
IniWrite(@HomeDrive & "\sysprep\Dprep.ini", "newprep", "Ext3", $input_3)
endif
if $input_4 <> "" then
IniWrite(@HomeDrive & "\sysprep\Dprep.ini", "newprep", "setup", $input_4)
endif
if $input_5 <> "" then
IniWrite(@HomeDrive & "\sysprep\Dprep.ini", "firstrun", "run1", $input_5)
endif
if $input_6 <> "" then
IniWrite(@HomeDrive & "\sysprep\Dprep.ini", "firstrun", "run2", $input_6)
endif
if $input_7 <> "" then
IniWrite(@HomeDrive & "\sysprep\Dprep.ini", "firstrun", "run3", $input_7)
endif
if $input_8 <> "" then
IniWrite(@HomeDrive & "\sysprep\Dprep.ini", "firstrun", "delfolder", $input_8)
endif
GUISetState(@SW_HIDE, $ParentWin)
endfunc
;==============================================
Func prep()
if not fileexists(@HomeDrive & "\sysprep\sysprep.exe") then
msgbox(16,"Dprep Tool", $txt_[42])
exit
endif
if not fileexists(@HomeDrive & "\sysprep\setupcl.exe") then
msgbox(16,"Dprep Tool", $txt_[43])
exit
endif
if not fileexists(@HomeDrive & "\sysprep\sysprep.inf") then
msgbox(16,"Dprep Tool", $txt_[44])
exit
endif
if not fileexists(@windowsdir&"\driver cache\i386\driver.cab") and $cabf="driver.cab" then
msgbox(16,"Dprep Tool", $txt_[45])
exit
endif
;----------------------------------------------
;button for sure, start sysprep
  $Rprep = MsgBox (8192+36,"Dprep Tool", $txt_[41])
  IF $Rprep = 7 THEN
  ELSE
  changeGUI()
  startprep()
  endif
endfunc
;----------------------------------------------
func changeGUI()
if GUICtrlRead ($box_01) = 1 then
IniWrite(@HomeDrive & "\sysprep\Dprep.ini", "sysprep", "srs", "1")
endif
if GUICtrlRead ($box_02) = 1 then
IniWrite(@HomeDrive & "\sysprep\Dprep.ini", "sysprep", "ide", "1")
endif
if GUICtrlRead ($box_03) = 1 then
IniWrite(@HomeDrive & "\sysprep\Dprep.ini", "sysprep", "hal", "1")
endif
if GUICtrlRead ($box_04) = 1 then
IniWrite(@HomeDrive & "\sysprep\Dprep.ini", "sysprep", "net", "1")
endif
if GUICtrlRead ($box_05) = 1 then
IniWrite(@HomeDrive & "\sysprep\Dprep.ini", "sysprep", "sys", "1")
endif
if GUICtrlRead ($box_06) = 1 then
IniWrite(@HomeDrive & "\sysprep\Dprep.ini", "sysprep", "dev", "1")
endif
if GUICtrlRead ($box_11) = 1 then
$time = IniRead("c:\boot.ini","boot loader","timeout","")
IniWrite(@HomeDrive & "\sysprep\Dprep.ini", "newprep", "timeout", $time)
endif
if GUICtrlRead ($box_12) = 1 then
IniWrite(@HomeDrive & "\sysprep\Dprep.ini", "newprep", "Hide", "1")
endif
if GUICtrlRead ($box_13) = 1 then
IniWrite(@HomeDrive & "\sysprep\Dprep.ini", "newprep", "Cuser", @UserName)
endif
if GUICtrlRead ($box_14) = 1 then
IniWrite(@HomeDrive & "\sysprep\Dprep.ini", "firstrun", "delwmp", "1")
endif
if GUICtrlRead ($box_15) = 1 then
IniWrite(@HomeDrive & "\sysprep\Dprep.ini", "firstrun", "clndrv", "1")
endif
if GUICtrlRead ($box_16) = 1 then
VGA800x600()
endif
GUICtrlDelete($group_1)
GUICtrlDelete($box_01)
GUICtrlDelete($box_02)
GUICtrlDelete($box_03)
GUICtrlDelete($box_04)
GUICtrlDelete($box_05)
GUICtrlDelete($box_06)
GUICtrlDelete($group_2)
GUICtrlDelete($box_11)
GUICtrlDelete($box_12)
GUICtrlDelete($box_13)
GUICtrlDelete($box_14)
GUICtrlDelete($box_15)
GUICtrlDelete($box_16)
GUICtrlDelete($bar)
$bar = GUICtrlCreateLabel($txt_[46],10,284,250,12)
GUICtrlDelete($button_1)
GUICtrlDelete($button_2)
GUICtrlDelete($button_4)
FileInstall("deepin.gif", @TempDir&"\deepin.gif", 1)
$pic=GUICreate("", 150, 40, 220, 110,$WS_POPUP,BitOr($WS_EX_LAYERED,$WS_EX_MDICHILD),$main)
GuiCtrlCreatePic(@TempDir&"\deepin.gif", 0, 0, 150, 40)
GUISetState(@SW_SHOW, $pic)
GUISetState(@SW_SHOW, $main)
FileDelete(@TempDir&"\deepin.gif")
$text_57 = GUICtrlCreateLabel ($txt_[57], 210, 150, 75, 15)
GUICtrlSetColor(-1, 0x045B8C)
$text_58 = GUICtrlCreateLabel ($txt_[58], 290, 148, 100, 15)
GUICtrlSetColor(-1, 0x045B8C)
GUICtrlSetFont(-1, 9, 100, 0, "Verdana")
$button_4 = GUICtrlCreateButton ($txt_[9]&"(&F)", 305, 245, 70, 24)
GUICtrlSetState($button_3, $GUI_DISABLE)
GUICtrlSetState($button_4, $GUI_DISABLE)
endfunc
;===================================================================
func startprep()
regwrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CrashControl","AutoReboot","REG_DWORD","0x00000000")
regwrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CrashControl","CrashDumpEnabled","REG_DWORD","0x00000000")
regwrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CrashControl","LogEvent","REG_DWORD","0x00000000")
regwrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CrashControl","Overwrite","REG_DWORD","0x00000001")
regwrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CrashControl","SendAlert","REG_DWORD","0x00000000")
regwrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\WebView\BarricadedFolders","shell:System","REG_DWORD","0x00000001")
regwrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\WebView\BarricadedFolders","shell:Windows","REG_DWORD","0x00000001")
regwrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\WebView\BarricadedFolders","shell:SystemDriveRootFolder","REG_DWORD","0x00000001")
regwrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Driver Signing","olicy","REG_BINARY","00")
regwrite("HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\windows\DriverSearching","DontPromptForWindowsUpdate","REG_DWORD","0x00000000")
regwrite("HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\windows\DriverSearching","DontSearchWindowsUpdate","REG_DWORD","0x00000001")
FileInstall("inc\devcon.exe",@windowsdir&"\", 1)
$text_11 = GUICtrlCreateLabel ($txt_[11], 40, 110, 150, 15)
$text_12 = GUICtrlCreateLabel ($txt_[12], 40, 130, 150, 15)
$text_13 = GUICtrlCreateLabel ($txt_[13], 40, 150, 150, 15)
$text_14 = GUICtrlCreateLabel ($txt_[14], 40, 170, 150, 15)
$text_49 = GUICtrlCreateLabel ($txt_[49], 40, 190, 150, 15)
$text_16 = GUICtrlCreateLabel ($txt_[16], 40, 210, 150, 15)
$text_50 = GUICtrlCreateLabel ($txt_[50], 40, 230, 150, 15)
$text_17 = GUICtrlCreateLabel ($txt_[17], 40, 250, 150, 15)
$text_47 = GUICtrlCreateLabel ($txt_[47], 220, 200, 170, 15)
GUICtrlSetColor(-1, 0x0000ff)
GUICtrlSetFont(-1, 11, 100, 0, "Verdana")
$box_1 = IniRead(@HomeDrive & "\sysprep\Dprep.ini", "sysprep", "srs", "")
$box_2 = IniRead(@HomeDrive & "\sysprep\Dprep.ini", "sysprep", "ide", "")
$box_3 = IniRead(@HomeDrive & "\sysprep\Dprep.ini", "sysprep", "hal", "")
$box_4 = IniRead(@HomeDrive & "\sysprep\Dprep.ini", "sysprep", "net", "")
$box_6 = IniRead(@HomeDrive & "\sysprep\Dprep.ini", "sysprep", "dev", "")
if $box_1 = "1" then
$run_1 = GUICtrlCreateLabel ($txt_[51], 25, 110, 15, 15)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetColor($text_11, 0xFF0000)
sleep(1000)
srs()
GUICtrlDelete($run_1)
$ok_1 = GUICtrlCreateLabel ($txt_[52], 25, 110, 15, 15)
GUICtrlSetState($text_11, $GUI_DISABLE)
else
$pass_1 = GUICtrlCreateLabel ($txt_[53], 25, 110, 15, 15)
GUICtrlSetState($text_11, $GUI_DISABLE)
endif
if $box_2 = "1" then
$run_2 = GUICtrlCreateLabel ($txt_[51], 25, 130, 15, 15)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetColor($text_12, 0xFF0000)
sleep(1000)
ide()
GUICtrlDelete($run_2)
$ok_2 = GUICtrlCreateLabel ($txt_[52], 25, 130, 15, 15)
GUICtrlSetState($text_12, $GUI_DISABLE)
else
$pass_2 = GUICtrlCreateLabel ($txt_[53], 25, 130, 15, 15)
GUICtrlSetState($text_12, $GUI_DISABLE)
endif
if $box_3 = "1" then
$run_3 = GUICtrlCreateLabel ($txt_[51], 25, 150, 15, 15)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetColor($text_13, 0xFF0000)
sleep(1000)
acpi()
GUICtrlDelete($run_3)
$ok_3 = GUICtrlCreateLabel ($txt_[52], 25, 150, 15, 15)
GUICtrlSetState($text_13, $GUI_DISABLE)
else
$pass_3 = GUICtrlCreateLabel ($txt_[53], 25, 150, 15, 15)
GUICtrlSetState($text_13, $GUI_DISABLE)
endif
if $box_4 = "1" then
$run_4 = GUICtrlCreateLabel ($txt_[51], 25, 170, 15, 15)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetColor($text_14, 0xFF0000)
sleep(1000)
netcard()
GUICtrlDelete($run_4)
$ok_4 = GUICtrlCreateLabel ($txt_[52], 25, 170, 15, 15)
GUICtrlSetState($text_14, $GUI_DISABLE)
else
$pass_4 = GUICtrlCreateLabel ($txt_[53], 25, 170, 15, 15)
GUICtrlSetState($text_14, $GUI_DISABLE)
endif
GUICtrlDelete($text_47)
$text_48 = GUICtrlCreateLabel ($txt_[48], 220, 200, 170, 15)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetFont(-1, 11, 100, 0, "Verdana")
$run_5 = GUICtrlCreateLabel ($txt_[51], 25, 190, 15, 15)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetColor($text_49, 0xFF0000)
sysprep()
detecthal()
GUICtrlDelete($run_5)
$ok_5 = GUICtrlCreateLabel ($txt_[52], 25, 190, 15, 15)
GUICtrlSetState($text_49, $GUI_DISABLE)
if $box_6 = "1" then
$run_6 = GUICtrlCreateLabel ($txt_[51], 25, 210, 15, 15)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetColor($text_16, 0xFF0000)
sleep(1000)
devcondrv()
GUICtrlDelete($run_6)
$ok_6 = GUICtrlCreateLabel ($txt_[52], 25, 210, 15, 15)
GUICtrlSetState($text_16, $GUI_DISABLE)
else
$pass_6 = GUICtrlCreateLabel ($txt_[53], 25, 210, 15, 15)
GUICtrlSetState($text_16, $GUI_DISABLE)
endif
$run_7 = GUICtrlCreateLabel ($txt_[51], 25, 230, 15, 15)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetColor($text_50, 0xFF0000)
sleep(200)
halsys()
acpi_hal()
GUICtrlDelete($run_7)
$ok_7 = GUICtrlCreateLabel ($txt_[52], 25, 230, 15, 15)
GUICtrlSetState($text_50, $GUI_DISABLE)
$run_8 = GUICtrlCreateLabel ($txt_[51], 25, 250, 15, 15)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetColor($text_17, 0xFF0000)
sleep(200)
DirRemove (@windowsdir&"\lastgood",1)
Filedelete(@systemdir&"\*.tmp")
Filedelete(@windowsdir&"\repair\*.*")
Filedelete(@windowsdir&"\Prefetch\*.*")
GUICtrlDelete($run_8)
$ok_8 = GUICtrlCreateLabel ($txt_[52], 25, 250, 15, 15)
GUICtrlSetState($text_17, $GUI_DISABLE)
GUICtrlDelete($text_48)
$text_54 = GUICtrlCreateLabel ($txt_[54], 220, 200, 170, 15)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetFont(-1, 11, 100, 0, "Verdana")
GUICtrlDelete($bar)
$bar = GUICtrlCreateLabel($txt_[54],10,284,250,12)
GUICtrlSetState($button_4, $GUI_ENABLE)
MsgBox (0+64, $txt_[1], $txt_[55] [url=mailto:&@CR]&@CR[/url]& $txt_[56])
FileDelete(@UserProfileDir & "\Local Settings\Application Data\IconCache.db")
deltmp()
rrecent()
_Dirremove(@tempdir)
if @OSVersion='WIN_2000' then
else
_CleanEvent(1)
endif
FileDelete(@HomeDrive & "\sysprep\sysprep.exe")
FileDelete(@HomeDrive & "\sysprep\setupcl.exe")
FileDelete(@HomeDrive & "\sysprep\cleandrm.log")
EndFunc
;===================================================================
Func srs()
Fileinstall("inc\srs.exe", @TempDir&"\SRS.exe", 1)
Fileinstall("inc\srs.reg", @TempDir&"\SRS.reg", 1)
Runwait(@TempDir&"\SRS.exe" ,"",@sw_hide)
Runwait(@ComSpec & ' /c ' & 'regedit /s "'& @TempDir & '\SRS.reg"',"",@sw_hide)
EndFunc
;===================================================================
Func ide()
[url=mailtomshdc=@WindowsDir]$mshdc=@WindowsDir[/url] & '\inf\mshdc.inf'
[url=mailtofile=@WindowsDir]$file=@WindowsDir[/url] & '\inf\hdc.inf'
Fileinstall("inc\hdc.inf", $file, 1)
$string=iniread($mshdc,'Strings','PCI\CC_0101.DeviceDesc','')
iniwrite($file,'Strings','PCI\CC_0101.DeviceDesc','"'&$string&'"')
$ide='HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\'
$t=1
While 1
  $hdid=regenumkey($ide,$t)
  if @error=-1 then exitloop
  $hdid=regread($ide&$hdid,'MatchingDeviceId')
  if Stringinstr($hdid,'pci') and Stringinstr($hdid,'cc_0101')=0 then
  $string=iniread($file,'MS_HDC','%PCI\CC_0101.DeviceDesc%','')
  inidelete($file,'MS_HDC','%PCI\CC_0101.DeviceDesc%')
  iniwrite($file,'MS_HDC','%'&$hdid&'.DeviceDesc%',$string)
  $string=iniread($file,'Strings','PCI\CC_0101.DeviceDesc','')
  inidelete($file,'Strings','PCI\CC_0101.DeviceDesc')
  iniwrite($file,'Strings',$hdid&'.DeviceDesc','"'&$string&'"')
  $p=1
  While 1
  $pci=regenumkey('HKLM\SYSTEM\CurrentControlSet\Enum\PCI',$p)
    if @error=-1 then exitloop
        if Stringinstr('PCI\'&$pci,$hdid) then
runwait('cmd /c devcon update '&$file&' "'&$hdid&'" || devcon update '&$file&' "CI\'&$pci&'"','',@SW_HIDE)  
exitloop
        endif
      $p=$p+1
    wend
EndIf  
  $t=$t+1   
Wend
  sleep(3000)
  Filedelete(@Windowsdir&"\inf\*.pnf")
  Filedelete($file)
EndFunc
;===================================================================
Func acpi()
runwait("devcon sethwid @ROOT\ACPI_HAL\0000 := +E_ISA_UP !ACPIPIC_UP !ACPIAPIC_UP !ACPIAPIC_MP !MPS_UP !MPS_MP","",@SW_HIDE)
runwait("devcon update "[url=mailto:&@windowsdir&]&@windowsdir&"\inf\hal.inf[/url] E_ISA_UP","",@SW_HIDE)
EndFunc
;===================================================================
Func netcard()
regdelete("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}")
regdelete("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}")
regdelete("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}")
regdelete("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}")
regdelete("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{6BDD1FC5-810F-11D0-BEC7-08002BE2092F}")
regwrite ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}")
regwrite ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{6BDD1FC5-810F-11D0-BEC7-08002BE2092F}")
EndFunc

;===================================================================
Func VGA800x600()
regwrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VgaSave\Device0","DefaultSettings.XResolution","REG_dword","0x00000320")
regwrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VgaSave\Device0","DefaultSettings.YResolution","REG_dword","0x00000258")
regwrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VgaSave\Device0","DefaultSettings.BitsPerPel","REG_dword","0x00000020")
regwrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{23A77BF7-ED96-40EC-AF06-9B1F4867732A}\0000","DefaultSettings.XResolution","REG_dword","0x00000320")
regwrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{23A77BF7-ED96-40EC-AF06-9B1F4867732A}\0000","DefaultSettings.YResolution","REG_dword","0x00000258")
regwrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{23A77BF7-ED96-40EC-AF06-9B1F4867732A}\0000","DefaultSettings.BitsPerPel","REG_dword","0x00000020")
EndFunc
;===================================================================
func sysprep()
FileInstall("newprep.exe", @windowsDir & "\", 1)
RunWait(@ComSpec &" /c sc config  seclogon start=AUTO ",@SystemDir,@sw_hide)
$box_5 = IniRead(@HomeDrive & "\sysprep\Dprep.ini", "sysprep", "sys", "")
if @OSVersion='WIN_2000' then
sleep(2000)
if $box_5 = "1" then
run(@HomeDrive&"\sysprep\sysprep.exe -mini -noreboot")
ToolTip(@CR&'  '&$txt_[48]&'  [url=mailto:]'&@CR[/url], @DesktopWidth-200, @DesktopHeight-100)
sleep(1000)
ProcessWait("sysprep.exe")
If WinExists("Windows 2000 System Preparation Tool") Then
WinActivate("Windows 2000 System Preparation Tool", "")
EndIf
send("{ENTER}")
else
run(@HomeDrive&"\sysprep\sysprep.exe -mini -noreboot")
ToolTip(@CR&'  '&$txt_[48]&'  [url=mailto:]'&@CR[/url], @DesktopWidth-200, @DesktopHeight-100)
sleep(1000)
ProcessWait("sysprep.exe")
If WinExists("Windows 2000 System Preparation Tool") Then
WinActivate("Windows 2000 System Preparation Tool", "")
EndIf
EndIf
sleep(1000)
else
run(@HomeDrive&"\sysprep\sysprep.exe -quiet -mini -noreboot")
sleep(300)
ToolTip(@CR&'    10%    [url=mailto:]'&@CR[/url], @DesktopWidth-100, @DesktopHeight-100)
sleep(300)
ToolTip(@CR&'    20%    [url=mailto:]'&@CR[/url], @DesktopWidth-100, @DesktopHeight-100)
sleep(400)
ToolTip(@CR&'    30%    [url=mailto:]'&@CR[/url], @DesktopWidth-100, @DesktopHeight-100)
sleep(500)
ToolTip(@CR&'    40%    [url=mailto:]'&@CR[/url], @DesktopWidth-100, @DesktopHeight-100)
sleep(600)
ToolTip(@CR&'    50%    [url=mailto:]'&@CR[/url], @DesktopWidth-100, @DesktopHeight-100)
sleep(700)
ToolTip(@CR&'    60%    [url=mailto:]'&@CR[/url], @DesktopWidth-100, @DesktopHeight-100)
sleep(800)
ToolTip(@CR&'    70%    [url=mailto:]'&@CR[/url], @DesktopWidth-100, @DesktopHeight-100)
sleep(900)
ToolTip(@CR&'    80%    [url=mailto:]'&@CR[/url], @DesktopWidth-100, @DesktopHeight-100)
sleep(1000)
ToolTip(@CR&'    90%    [url=mailto:]'&@CR[/url], @DesktopWidth-100, @DesktopHeight-100)
sleep(1000)
ToolTip(@CR&'  100%    [url=mailto:]'&@CR[/url], @DesktopWidth-100, @DesktopHeight-100)
sleep(1000)
ToolTip('', @DesktopWidth-0, @DesktopHeight-0)
ProcessWait("sysprep.exe")
If WinExists($txt_[40]) Then
WinActivate($txt_[40], "")
EndIf
If WinExists($txt_[40]&" 2.0") Then
WinActivate($txt_[40]&" 2.0", "")
EndIf
If WinExists("System Preparation Tool") Then
WinActivate("System Preparation Tool", "")
EndIf
If WinExists("System Preparation Tool 2.0") Then
WinActivate("System Preparation Tool 2.0", "")
EndIf
if $box_5 = "1" then
sleep(100)
Send("{ALTDOWN}r{ALTUP}")
sleep(100)
send("{left}")
sleep(100)
ToolTip(@CR&'  '&$txt_[48]&'  [url=mailto:]'&@CR[/url], @DesktopWidth-200, @DesktopHeight-100)
send("{ENTER}")
sleep(3000)
endif
endif
ProcessWaitClose("sysprep.exe")
ToolTip('', @DesktopWidth-0, @DesktopHeight-0)
regwrite("HKLM\SYSTEM\Setup","CmdLine","REG_SZ", "newprep")
EndFunc
;===================================================================
Func detecthal()
FileSetAttrib(@HomeDrive&"\boot.ini","-HSR")
FileSetAttrib(@HomeDrive&"\ntldr","-HSR")
regdelete("HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices")
FileMove(@HomeDrive&"\ntldr", @HomeDrive&"\ntldr.bi_")
Fileinstall("inc\lhldr",@homedrive&"\ntldr",1)
$Win=Stringtrimleft(@windowsdir,3)
if regread("HKLM\SYSTEM\CurrentControlSet\Control","SystemBootDevice")='' then
$default="multi(0)disk(0)rdisk(0)partition(1)\"&$Win
else
$default=regread("HKLM\SYSTEM\CurrentControlSet\Control","SystemBootDevice")&"\"&$Win
endif
$result=iniread(@homedrive&"\boot.ini","operating systems",$default,"")
if Stringinstr($result,"DETECTHAL")=0 then
$addresult=$result&" /DETECTHAL"
iniwrite(@homedrive&"\boot.ini","operating systems",$default,$addresult)
iniwrite(@homedrive&"\boot.ini","boot loader", "default", $default)
iniwrite(@homedrive&"\boot.ini","boot loader", "timeout", "0")
EndIf
FileSetAttrib(@HomeDrive&"\boot.ini","+HSR")
FileSetAttrib(@HomeDrive&"\ntldr","+HSR")
FileSetAttrib(@HomeDrive&"\ntldr.bi_","+HSR")
EndFunc
;===================================================================
Func devcondrv()
Runwait(@ComSpec & " /c " & 'devcon.exe remove DISPLAY\*',"",@sw_hide)
sleep(100)
Runwait(@ComSpec & " /c " & 'devcon.exe remove ACPI\Processor',"",@sw_hide)
sleep(100)
Runwait(@ComSpec & " /c " & 'devcon.exe remove PCI\CC_09*',"",@sw_hide)
sleep(100)
Runwait(@ComSpec & " /c " & 'devcon.exe remove PCI\CC_02*',"",@sw_hide)
sleep(100)
Runwait(@ComSpec & " /c " & 'devcon.exe remove PCI\CC_03*',"",@sw_hide)
sleep(100)
Runwait(@ComSpec & " /c " & 'devcon.exe remove PCI\CC_04*',"",@sw_hide)
sleep(100)
Runwait(@ComSpec & " /c " & 'devcon.exe remove PCI\CC_0C*',"",@sw_hide)
sleep(100)
Runwait(@ComSpec & " /c " & 'devcon.exe remove PCI\CC_0604*',"",@sw_hide)
sleep(100)
Runwait(@ComSpec & " /c " & 'devcon.exe remove @USBSTOR\*',"",@sw_hide)
sleep(100)
Runwait(@ComSpec & " /c " & 'devcon.exe remove @USB\*',"",@sw_hide)
sleep(100)
Runwait(@ComSpec & " /c " & 'devcon.exe remove @HID',"",@sw_hide)
sleep(100)
Runwait(@ComSpec & " /c " & 'devcon.exe remove @ide',"",@sw_hide)
sleep(100)
Runwait(@ComSpec & " /c " & 'devcon.exe remove @PCIIDE',"",@sw_hide)
sleep(100)
EndFunc
;===================================================================
func halsys()
Fileinstall("inc\dtecthal.inf",@Windowsdir&"\inf\",1)
Filedelete(@windowsdir&"\TEMP\*.*")
Regwrite("HKEY_LOCAL_MACHINE\SYSTEM\Control\Session Manager\Environment","TMP","REG_EXPAND_SZ","%systemroot%\TEMP")
Regwrite("HKEY_LOCAL_MACHINE\SYSTEM\Control\Session Manager\Environment","TEMP","REG_EXPAND_SZ","%systemroot%\TEMP")
Runwait("extrac32 /e /y "&'"[url=mailto:]'&@Windowsdir&"\driver[/url] cache\i386\"&$cabf&'"'&" acpi.sys hal*.dll ntoskrnl.exe ntkrnlmp.exe ntkrpamp.exe ntkrnlpa.exe scsiport.sys /l "[url=mailto:&@windowsdir&]&@windowsdir&"\temp","",@SW_HIDE[/url])
filemove(@windowsdir&"\temp\*.sys",@systemdir&"\drivers",1)
filemove(@windowsdir&"\temp\*.*",@systemdir&"\",1)
Filecopy(@systemdir&"\hal.dll",@systemdir&"\halstnd.dll",1)
Filecopy(@systemdir&"\ntoskrnl.exe",@systemdir&"\ntkrnlup.exe",1)
EndFunc
;===================================================================
Func acpi_hal()
RegDelete("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E966-E325-11CE-BFC1-08002BE10318}","0000")
RegDelete("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E966-E325-11CE-BFC1-08002BE10318}","0001")
RegDelete("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet001\Control\Class\{4D36E966-E325-11CE-BFC1-08002BE10318}","0000")
RegDelete("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet001\Control\Class\{4D36E966-E325-11CE-BFC1-08002BE10318}","0001")
FileInstall("inc\setacl.exe", @TempDir&"\", 1)
FileInstall("inc\setacl.bat", @TempDir&"\", 1)
RunWait(@ComSpec & " /c " & 'setacl.bat', @TempDir, @SW_HIDE)
sleep(1000)
FileDelete(@TempDir&"\setacl.bat")
FileDelete(@TempDir&"\setacl.exe")
EndFunc
;===================================================================
        Func _CleanEvent($s=1)
        $strComputer= "."
        $objWMIService = ObjGet("winmgmts:" & "{impersonationLevel=impersonate,(Backup)}!\\" & $strComputer & "\root\cimv2")
Dim $mylogs[4]
$mylogs[1]="application"
$mylogs[2]="system"
$mylogs[3]="security"
        For $logs in $mylogs
        $colLogFiles = $objWMIService.ExecQuery ('Select * from Win32_NTEventLogFile where LogFileName="' & $logs & '"')
                For $objLogfile in $colLogFiles
                        $objLogFile.ClearEventLog()
                Next
        Next
EndFunc
;============================================================
Func deltmp()
    Local $sCmdFile
    FileDelete(@TempDir & "\tmp.bat")
    $sCmdFile = 'del /f /s /q %systemdrive%\*.tmp' & @CRLF _
    & 'del /f /s /q %systemdrive%\*._mp' & @CRLF _
    & 'del /f /s /q %systemdrive%\*.log' & @CRLF _
    & 'del /f /s /q %systemdrive%\*.gid' & @CRLF _
    & 'del /f /s /q %systemdrive%\*.chk' & @CRLF _
    & 'del /f /s /q %systemdrive%\*.old' & @CRLF _
    & 'del /f /s /q %systemdrive%\recycled\*.*' & @CRLF _
    & 'del /f /s /q %windir%\*.bak' & @CRLF _
    & 'del /f /s /q %windir%\prefetch\*.*' & @CRLF _
    & 'rd /s /q %windir%\temp' & @CRLF _
    & 'md %windir%\temp' & @CRLF _
    & 'del ' & @TempDir & '\tmp.bat'
    FileWrite(@TempDir & "\tmp.bat", $sCmdFile)
    Run(@TempDir & "\tmp.bat", @TempDir, @SW_HIDE)
EndFunc
;============================================================
Func rrecent()
$RecentDir=RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","Recent")
FileDelete($RecentDir&"\*.*")
EndFunc
;===================================================================
Func _Dirremove($searchdir)
$search = FileFindFirstFile($searchdir & "\*.*")
If $search = -1 Then return
While 1
$file = FileFindNextFile($search)
If @error Then
  Exitloop
ElseIf stringinstr(FileGetAttrib($searchdir & "\" & $file),"D") then
  Dirremove($searchdir & "\" & $file,1)
ElseIF stringinstr(FileGetAttrib($searchdir & "\" & $file),"R") then
  FileSetAttrib($searchdir & "\" & $file,"-R")
  FileDelete($searchdir & "\" & $file)
  FileSetAttrib($searchdir & "\" & $file,"+R")
Else
  FileDelete($searchdir & "\" & $file)
EndIf  
WEnd
EndFunc

TOP

还有表情在里面啊?

知足而常乐~!

TOP

太长了
还是直接写个批处理来的清楚

TOP