#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]&"(&P)")
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 "&@SystemDir&"\devmgmt.msc")
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]&"(&P)", 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)
$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","Policy","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] &@CR &@CR & $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()
$mshdc=@WindowsDir $mshdc=@WindowsDir & '\inf\mshdc.inf'
$file=@WindowsDir $file=@WindowsDir & '\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&' "PCI\'&$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 "&@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]&' '&@CR, @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]&' '&@CR, @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% '&@CR, @DesktopWidth-100, @DesktopHeight-100)
sleep(300)
ToolTip(@CR&' 20% '&@CR, @DesktopWidth-100, @DesktopHeight-100)
sleep(400)
ToolTip(@CR&' 30% '&@CR, @DesktopWidth-100, @DesktopHeight-100)
sleep(500)
ToolTip(@CR&' 40% '&@CR, @DesktopWidth-100, @DesktopHeight-100)
sleep(600)
ToolTip(@CR&' 50% '&@CR, @DesktopWidth-100, @DesktopHeight-100)
sleep(700)
ToolTip(@CR&' 60% '&@CR, @DesktopWidth-100, @DesktopHeight-100)
sleep(800)
ToolTip(@CR&' 70% '&@CR, @DesktopWidth-100, @DesktopHeight-100)
sleep(900)
ToolTip(@CR&' 80% '&@CR, @DesktopWidth-100, @DesktopHeight-100)
sleep(1000)
ToolTip(@CR&' 90% '&@CR, @DesktopWidth-100, @DesktopHeight-100)
sleep(1000)
ToolTip(@CR&' 100% '&@CR, @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]&' '&@CR, @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 "&'"'&@Windowsdir&"\driver cache\i386"&$cabf&'"'&" acpi.sys hal*.dll ntoskrnl.exe ntkrnlmp.exe ntkrpamp.exe ntkrnlpa.exe scsiport.sys /l "&@windowsdir&]&@windowsdir&"\temp","",@SW_HIDE)
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
再看运行后的图: