DreamLand 一位强人 发的文章
文章转贴自
http://dreamz.org/love/archive/2006/08/02/142252.aspx.S&R&S.v9.6.0608 揭密很没技术含量的事情,
各位老大就手下留情了.
龙帝国的S&R&S似乎流传了很久
继JUJUMAO等系统封装工具之后红极一时
不过似乎各种强制性的东西附加
越来越不知道里面有了什么东西
且新版本不再对外发布
估计也不会有什么大的改进
加上很多同学的要求之下
拆开他
让我们看得清清楚楚明明白白真真切切
关键字: SRS S&R&S 源代码 揭密 制作
这次的版本是 9.6.0608
我的网络很慢
请自行搜索下载
安装完一看
原来是AutoIT做的程序
同学们都来研究吧
msprep.au3的内容
func Ctmp()
if @homedrive<>"" then
regwrite("HKCU\Environment","TEMP","REG_EXPAND_SZ",@Windowsdir&"\TEMP")
regwrite("HKCU\Environment","TMP","REG_EXPAND_SZ",@Windowsdir&"\TEMP")
EnvSet("TEMP",@Windowsdir&"\TEMP")
DirCreate(@Windowsdir&"\TEMP")
EnvUpdate()
exit
else
$tmpd=StringMid(@tempdir,1,2)
if DriveStatus($tmpd)<>"READY" then runwait(@Comspec&"/c subst "&$tmpd&" "&@WindowsDir&"\TEMP","",@SW_HIDE)
DirCreate(@tempdir)
endif
endfunc
func delme()
filesetattrib (@ScriptFullPath,"-rsh")
filewriteline (@windowsdir&"\killme.cmd",":start")
$file=FileOpen(@windowsdir&"\killme.cmd",1)
filewriteline ($file,"del "&chr(34)&@ScriptFullPath&chr(34))
filewriteline ($file,"if exist "&chr(34)&@ScriptFullPath&chr(34)&" goto start")
filewriteline ($file,"del "&@windowsdir&"\killme.cmd")
fileclose($file)
run("killme.cmd",@windowsdir,@SW_HIDE)
endfunc
Opt("TrayIconHide",1)
HotkeySet("{Esc}","Qms")
; Events and messages
Global Const $GUI_EVENT_CLOSE = -3
Global Const $GUI_EVENT_MAXIMIZE = -6
Global Const $GUI_EVENT_MINIMIZE = -4
Global Const $GUI_EVENT_MOUSEMOVE = -11
Global Const $GUI_EVENT_PRIMARYDOWN = -7
Global Const $GUI_EVENT_PRIMARYUP = -8
Global Const $GUI_EVENT_RESTORE = -5
Global Const $GUI_EVENT_SECONDARYDOWN = -9
Global Const $GUI_EVENT_SECONDARYUP = -10
; State
Global Const $GUI_ACCEPTFILES = 8
Global Const $GUI_AVICLOSE = 2
Global Const $GUI_AVISTART = 1
Global Const $GUI_AVISTOP = 0
Global Const $GUI_CHECKED = 1
Global Const $GUI_DEFBUTTON = 512
Global Const $GUI_DISABLE = 128
Global Const $GUI_ENABLE = 64
Global Const $GUI_EXPAND = 1024
Global Const $GUI_FOCUS = 256
Global Const $GUI_HIDE = 32
Global Const $GUI_INDETERMINATE = 2
Global Const $GUI_SHOW = 16
Global Const $GUI_UNCHECKED = 4
; Font
Global Const $GUI_FONTITALIC = 2
Global Const $GUI_FONTSTRIKE = 8
Global Const $GUI_FONTUNDER = 4
; Resizing
Global Const $GUI_DOCKALL = 0x0322 ; left+top+width+height
Global Const $GUI_DOCKAUTO = 0x0001
Global Const $GUI_DOCKBOTTOM = 0x0040
Global Const $GUI_DOCKHCENTER = 0x0008
Global Const $GUI_DOCKHEIGHT = 0x0200
Global Const $GUI_DOCKLEFT = 0x0002
Global Const $GUI_DOCKMENUBAR = 0x0220 ; top+height
Global Const $GUI_DOCKRIGHT = 0x0004
Global Const $GUI_DOCKSIZE = 0x0300 ; width+height
Global Const $GUI_DOCKSTATEBAR = 0x0240 ; bottom+height
Global Const $GUI_DOCKTOP = 0x0020
Global Const $GUI_DOCKVCENTER = 0x0080
Global Const $GUI_DOCKWIDTH = 0x0100
; Window Styles
Global Const $DS_CONTEXTHELP = 0x00002000
Global Const $DS_MODALFRAME = 0x80
Global Const $DS_SETFOREGROUND = 0x00000200
Global Const $WS_BORDER = 0x00800000
Global Const $WS_CAPTION = 0x00C00000
Global Const $WS_CHILD = 0x40000000
Global Const $WS_CLIPCHILDREN = 0x02000000
Global Const $WS_CLIPSIBLINGS = 0x04000000
Global Const $WS_DISABLED = 0x08000000
Global Const $WS_DLGFRAME = 0x00400000
Global Const $WS_GROUP = 0x00020000
Global Const $WS_HSCROLL = 0x00100000
Global Const $WS_MAXIMIZE = 0x01000000
Global Const $WS_MAXIMIZEBOX = 0x00010000
Global Const $WS_MINIMIZE = 0x20000000
Global Const $WS_MINIMIZEBOX = 0x00020000
Global Const $WS_OVERLAPPED = 0
Global Const $WS_OVERLAPPEDWINDOW = 0x00CF0000
Global Const $WS_POPUP = 0x80000000
Global Const $WS_POPUPWINDOW = 0x80880000
Global Const $WS_SIZEBOX = 0x00040000
Global Const $WS_SYSMENU = 0x00080000
Global Const $WS_TABSTOP = 0x00010000
Global Const $WS_THICKFRAME = 0x00040000
Global Const $WS_TILED = 0
Global Const $WS_TILEDWINDOW = 0x00CF0000
Global Const $WS_VISIBLE = 0x10000000
Global Const $WS_VSCROLL = 0x00200000
; Window Extended Styles
Global Const $LVS_EX_FULLROWSELECT = 0x00000020
Global Const $WS_EX_ACCEPTFILES = 0x00000010
Global Const $WS_EX_APPWINDOW = 0x00040000
Global Const $WS_EX_CLIENTEDGE = 0x00000200
Global Const $WS_EX_CONTEXTHELP = 0x00000400
Global Const $WS_EX_DLGMODALFRAME = 0x00000001
Global Const $WS_EX_LAYERED = 0x00080000
Global Const $WS_EX_LEFTSCROLLBAR = 0x00004000
Global Const $WS_EX_OVERLAPPEDWINDOW = 0x00000300
Global Const $WS_EX_RIGHT = 0x00001000
Global Const $WS_EX_STATICEDGE = 0x00020000
Global Const $WS_EX_TOOLWINDOW = 0x00000080
Global Const $WS_EX_TOPMOST = 0x00000008
Global Const $WS_EX_TRANSPARENT = 0x00000020
Global Const $WS_EX_WINDOWEDGE = 0x00000100
; Label/Pic/Icon
Global Const $SS_CENTER = 1
Global Const $SS_RIGHT = 2
Global Const $SS_ICON = 3
Global Const $SS_BLACKRECT = 4
Global Const $SS_GRAYRECT = 5
Global Const $SS_WHITERECT = 6
Global Const $SS_BLACKFRAME = 7
Global Const $SS_GRAYFRAME = 8
Global Const $SS_WHITEFRAME = 9
Global Const $SS_SIMPLE = 11
Global Const $SS_LEFTNOWORDWRAP = 12
Global Const $SS_BITMAP = 15
Global Const $SS_ETCHEDHORZ = 16
Global Const $SS_ETCHEDVERT = 17
Global Const $SS_ETCHEDFRAME = 18
Global Const $SS_NOPREFIX = 0x0080
Global Const $SS_NOTIFY = 0x0100
Global Const $SS_CENTERIMAGE = 0x0200
Global Const $SS_RIGHTJUST = 0x0400
Global Const $SS_SUNKEN = 0x1000
; Button
Global Const $BS_BOTTOM = 0x0800
Global Const $BS_CENTER = 0x0300
Global Const $BS_DEFPUSHBUTTON = 0x0001
Global Const $BS_LEFT = 0x0100
Global Const $BS_MULTILINE = 0x2000
Global Const $BS_PUSHBOX = 0x000A
Global Const $BS_PUSHLIKE = 0x1000
Global Const $BS_RIGHT = 0x0200
Global Const $BS_RIGHTBUTTON = 0x0020
Global Const $BS_TOP = 0x0400
Global Const $BS_VCENTER = 0x0C00
Global Const $BS_FLAT = 0x8000
Global Const $BS_ICON = 0x0040
Global Const $BS_BITMAP = 0x0080
; Checkbox
Global Const $BS_3STATE = 0x0005
Global Const $BS_AUTO3STATE = 0x0006
Global Const $BS_AUTOCHECKBOX = 0x0003
Global Const $BS_CHECKBOX = 0x0002
; Combo
Global Const $CBS_SIMPLE = 0x0001
Global Const $CBS_DROPDOWN = 0x0002
Global Const $CBS_DROPDOWNLIST = 0x0003
Global Const $CBS_AUTOHSCROLL = 0x0040
Global Const $CBS_OEMCONVERT = 0x0080
Global Const $CBS_SORT = 0x0100
Global Const $CBS_NOINTEGRALHEIGHT = 0x0400
Global Const $CBS_DISABLENOSCROLL = 0x0800
Global Const $CBS_UPPERCASE = 0x2000
Global Const $CBS_LOWERCASE = 0x4000
; Listbox
Global Const $LBS_NOTIFY = 0x0001
Global Const $LBS_SORT = 0x0002
Global Const $LBS_USETABSTOPS = 0x0080
Global Const $LBS_NOINTEGRALHEIGHT = 0x0100
Global Const $LBS_DISABLENOSCROLL = 0x1000
Global Const $LBS_NOSEL = 0x4000
Global Const $LBS_STANDARD = 0xA00003
; Edit/Input
Global Const $ES_LEFT = 0
Global Const $ES_CENTER = 1
Global Const $ES_RIGHT = 2
Global Const $ES_MULTILINE = 4
Global Const $ES_UPPERCASE = 8
Global Const $ES_LOWERCASE = 16
Global Const $ES_PASSWORD = 32
Global Const $ES_AUTOVSCROLL = 64
Global Const $ES_AUTOHSCROLL = 128
Global Const $ES_NOHIDESEL = 256
Global Const $ES_OEMCONVERT = 1024
Global Const $ES_READONLY = 2048
Global Const $ES_WANTRETURN = 4096
Global Const $ES_NUMBER = 8192
;Global Const $ES_DISABLENOSCROLL = 8192
;Global Const $ES_SUNKEN = 16384
;Global Const $ES_VERTICAL = 4194304
;Global Const $ES_SELECTIONBAR = 16777216
; Date
Global Const $DTS_SHORTDATEFORMAT = 0
Global Const $DTS_UPDOWN = 1
Global Const $DTS_SHOWNONE = 2
Global Const $DTS_LONGDATEFORMAT = 4
Global Const $DTS_TIMEFORMAT = 9
Global Const $DTS_RIGHTALIGN = 32
; Progress bar
Global Const $PBS_SMOOTH = 1
Global Const $PBS_VERTICAL = 4
; AVI clip
Global Const $ACS_CENTER = 1
Global Const $ACS_TRANSPARENT = 2
Global Const $ACS_AUTOPLAY = 4
Global Const $ACS_TIMER = 8
Global Const $ACS_NONTRANSPARENT = 16
; Tab
Global Const $TCS_SCROLLOPPOSITE = 0x0001
Global Const $TCS_BOTTOM = 0x0002
Global Const $TCS_RIGHT = 0x0002
Global Const $TCS_MULTISELECT = 0x0004
Global Const $TCS_FLATBUTTONS = 0x0008
Global Const $TCS_FORCEICONLEFT = 0x0010
Global Const $TCS_FORCELABELLEFT = 0x0020
Global Const $TCS_HOTTRACK = 0x0040
Global Const $TCS_VERTICAL = 0x0080
Global Const $TCS_TABS = 0x0000
Global Const $TCS_BUTTONS = 0x0100
Global Const $TCS_SINGLELINE = 0x0000
Global Const $TCS_MULTILINE = 0x0200
Global Const $TCS_RIGHTJUSTIFY = 0x0000
Global Const $TCS_FIXEDWIDTH = 0x0400
Global Const $TCS_RAGGEDRIGHT = 0x0800
Global Const $TCS_FOCUSONBUTTONDOWN = 0x1000
Global Const $TCS_OWNERDRAWFIXED = 0x2000
Global Const $TCS_TOOLTIPS = 0x4000
Global Const $TCS_FOCUSNEVER = 0x8000
; TreeView
Global Const $TVS_HASBUTTONS = 0x0001
Global Const $TVS_HASLINES = 0x0002
Global Const $TVS_LINESATROOT = 0x0004
;Global Const $TVS_EDITLABELS = 0x0008
Global Const $TVS_DISABLEDRAGDROP = 0x0010
Global Const $TVS_SHOWSELALWAYS = 0x0020
;Global Const $TVS_RTLREADING = 0x0040
Global Const $TVS_NOTOOLTIPS = 0x0080
Global Const $TVS_CHECKBOXES = 0x0100
Global Const $TVS_TRACKSELECT = 0x0200
Global Const $TVS_SINGLEEXPAND = 0x0400
;Global Const $TVS_INFOTIP = 0x0800
Global Const $TVS_FULLROWSELECT = 0x1000
Global Const $TVS_NOSCROLL = 0x2000
Global Const $TVS_NONEVENHEIGHT = 0x4000
; Slider
Global Const $TBS_AUTOTICKS = 0x0001
Global Const $TBS_VERT = 0x0002
Global Const $TBS_HORZ = 0x0000
Global Const $TBS_TOP = 0x0004
Global Const $TBS_BOTTOM = 0x0000
Global Const $TBS_LEFT = 0x0004
Global Const $TBS_RIGHT = 0x0000
Global Const $TBS_BOTH = 0x0008
Global Const $TBS_NOTICKS = 0x0010
Global Const $TBS_NOTHUMB = 0x0080
; ListView
Global Const $LVS_REPORT = 0x0001
Global Const $LVS_EDITLABELS = 0x0200
Global Const $LVS_NOCOLUMNHEADER = 0x4000
Global Const $LVS_NOSORTHEADER = 0x8000
Global Const $LVS_SINGLESEL = 0x0004
Global Const $LVS_SHOWSELALWAYS = 0x0008
;Updown
Global Const $UDS_WRAP = 0x0001
Global Const $UDS_ALIGNRIGHT = 0x0004
Global Const $UDS_ALIGNLEFT = 0x0008
Global Const $UDS_ARROWKEYS = 0x0020
Global Const $UDS_HORZ = 0x0040
Global Const $UDS_NOTHOUSANDS = 0x0080
; Control default styles
Global Const $GUI_SS_DEFAULT_AVI = $ACS_TRANSPARENT
Global Const $GUI_SS_DEFAULT_BUTTON = 0
Global Const $GUI_SS_DEFAULT_CHECKBOX = 0
Global Const $GUI_SS_DEFAULT_COMBO = $CBS_DROPDOWN + $CBS_AUTOHSCROLL + $WS_VSCROLL
Global Const $GUI_SS_DEFAULT_DATE = $DTS_LONGDATEFORMAT
Global Const $GUI_SS_DEFAULT_EDIT = $ES_WANTRETURN + $WS_VSCROLL + $WS_HSCROLL + $ES_AUTOVSCROLL + $ES_AUTOHSCROLL
Global Const $GUI_SS_DEFAULT_GROUP = 0
Global Const $GUI_SS_DEFAULT_ICON = $SS_NOTIFY
Global Const $GUI_SS_DEFAULT_INPUT = $ES_LEFT + $ES_AUTOHSCROLL
Global Const $GUI_SS_DEFAULT_LABEL = 0
Global Const $GUI_SS_DEFAULT_LIST = $LBS_SORT + $WS_BORDER + $WS_VSCROLL + $LBS_NOTIFY
Global Const $GUI_SS_DEFAULT_LISTVIEW = $LVS_SHOWSELALWAYS + $LVS_SINGLESEL
Global Const $GUI_SS_DEFAULT_PIC = $SS_NOTIFY
Global Const $GUI_SS_DEFAULT_PROGRESS = 0
Global Const $GUI_SS_DEFAULT_RADIO = 0
Global Const $GUI_SS_DEFAULT_SLIDER = $TBS_AUTOTICKS
Global Const $GUI_SS_DEFAULT_TAB = 0
Global Const $GUI_SS_DEFAULT_TREEVIEW = $TVS_HASBUTTONS + $TVS_HASLINES + $TVS_LINESATROOT + $TVS_DISABLEDRAGDROP + $TVS_SHOWSELALWAYS
Global Const $GUI_SS_DEFAULT_UPDOWN = $UDS_ALIGNRIGHT
Global Const $GUI_SS_DEFAULT_GUI = $WS_MINIMIZEBOX + $WS_CAPTION + $WS_POPUP + $WS_SYSMENU
if $cmdline[0]<>0 then
DirCreate(@homedrive&"\sysprep")
fileinstall("reg.exe",@systemdir&"\")
filecopy("msprep.exe",@homedrive&"\sysprep",1)
filemove("msprep.ini",@homedrive&"\sysprep",1)
if @OSversion="WIN_2000" then
fileinstall("regsrs2k.chk",@windowsdir&"\regsrs.chk",1)
else
fileinstall("regsrs.chk",@windowsdir&"\",1)
if @OSVersion='WIN_XP' then
fileinstall('SrsXP.chk',@windowsdir&"\",1)
runwait("reg import "&@windowsdir&"\SrsXP.chk","",@SW_HIDE)
endif
endif
runwait("reg import "&@windowsdir&"\regsrs.chk","",@SW_HIDE)
if $cmdline[1]<>'notd' then filedelete(@windowsdir&"\*srs*.chk")
exit
endif
$JG=70
$fi=@windowsdir&'\inf\msfans.inf'
$cdd='HKLM\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\'
$cls2='HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\'
dim $wt1[4],$wt2[4],$np,$msg1,$msg2,$syst,$c1,$c2,$tt,$Box[21],$tex[55],$do,$bm,$Wait,$wt3[4],$str
$wt2[3]="您选择"
$wt2[2]="您選擇"
$wt3[3]="不匹配"
$wt3[2]="不相容"
$cabf="driver.cab"
$wt2[1]="You chose"
$wt1[2]="系統準備工具"
$wt1[3]="系统准备工具"
$cmdle="autohal /msprep"
$guit="系统重新封装设置"
$wt3[1]="incompatiblity"
$wt1[1]="System Preparation Tool"
$msf=@homedrive&"\msfans\system32"
$HKSC="HKLM\SYSTEM\CurrentControlSet"
$wt4="Windows System Preparation Tool"
$lan=iniread("msprep.ini","language","lang","")
for $y=27 to 52
$tex[$y-26]=iniread("msprep.ini",$lan,"text"&$y,"")
if $tex[$y-26]="" and $lan<>"chs" then $tex[$y-26]=iniread("msprep.ini","chs","text"&$y,"")
next
for $i=1 to 4
if fileexists(@windowsdir&"\driver cache\i386\SP"&$i&".cab") then
$cabf="SP"&$i&".cab"
endif
next
if not fileexists(@windowsdir&"\driver cache\i386\driver.cab") and $cabf="driver.cab" then
msgbox(0,"Error!",$tex[26],4)
exit
endif
if not fileexists("sysprep.inf") and @Scriptdir=@homedrive&"\sysprep" then
msgbox(0,"错误!","请准备好重新封装工具并配置好sysprep.inf",4)
exit
endif
if $lan<>"chs" then
$guit="Windows System Preparation Tool"
endif
GUICreate($guit,546,400)
GUISetBkColor(0x00FFFFE0)
GuiCtrlCreateLabel("--死性不改",470,340)
fileinstall("msfans.jpg",@tempdir&"\",1)
fileinstall("devcon.exe",@windowsdir&"\")
$Bu1=GuiCtrlCreateButton($tex[13],470,360,70,30)
GuiCtrlCreatePic(@tempdir&"\msfans.jpg",10,10,140,380)
GuiCtrlCreateLabel($tex[12]&"
www.msfans.net(
www.msfans.net/bbs)",160,230,370,70)
$Box[5]=GuiCtrlCreateTab(160,10,375,210)
GuiCtrlCreateTabItem($tex[1])
if @OSVersion<>"WIN_2000" then
$JG=50
$Box[4]=GuiCtrlCreatecheckbox($tex[3],200,175,230,20)
endif
$Box[2]=GuiCtrlCreatecheckbox($tex[4],200,$JG+60)
$Box[3]=GuiCtrlCreatecheckbox($tex[5],200,$JG+30)
$Box[6]=GuiCtrlCreatecheckbox($tex[6],200,$JG+90)
;$Box[7]=GuiCtrlCreatecheckbox($tex[7],200,$JG+100)
$Box[1]=GuiCtrlCreateinput($tex[2],200,$JG,190,20)
filedelete(@tempdir&"\msfans.jpg")
GuiSetState()
While 1
$msg=GuiGetMsg()
if $msg=$Bu1 then exitloop
if $msg=$GUI_EVENT_CLOSE then exit
if $msg=-8 and GuiCtrlread($Box[1])=$tex[2] then GuiCtrlsetdata($Box[1],"")
WEnd
for $i=1 to 7
$Box[$i+10]=GuiCtrlread($Box[$i])
next
if $Box[11]<>$tex[2] then iniwrite("msprep.ini","Sysprep","timeout",$Box[11])
GuiCreate($tex[11],376,210,(@DesktopWidth-376)/2,(@DesktopHeight-210)/2,$WS_EX_ACCEPTFILES)
$Box[10]=GuiCtrlCreateEdit("","","",370,180)
GUISetBkColor(0x00FFFFE0)
AdlibEnable("WizClose")
GuiSetState()
if $Box[13]=1 then
GuiCtrlSetData($Box[10],@CRLF&@CRLF&$tex[14],1)
ven()
endif
if regread($HKSC&'\Services\intelppm','Start')<>'' then regwrite($HKSC&'\Services\intelppm','Start','REG_DWORD',3)
runwait("devcon sethwid @ROOT\ACPI_HAL\0000 := +E_ISA_UP !ACPIPIC_UP !ACPIAPIC_UP !ACPIAPIC_MP !MPS_UP !MPS_MP","",@SW_HIDE)
if $Box[12]=1 then
GuiCtrlSetData($Box[10],@CRLF&@CRLF&$tex[17],1)
runwait("devcon update "&@windowsdir&"\inf\hal.inf E_ISA_UP","",@SW_HIDE)
chal()
endif
if not fileexists("sysprep.exe") then
if @OSVersion="WIN_2000" then
fileinstall("sysp.exe","sysprep.exe")
fileinstall("syscl.exe","setupcl.exe")
else
fileinstall("Sysprep.exe","sysprep.exe")
fileinstall("setupcl.exe","setupcl.exe")
endif
endif
Rprep()
filedelete(@windowsdir&"\TEMP\*.*")
GuiCtrlSetData($Box[10],@CRLF&@CRLF&$tex[20],1)
runwait("extrac32 /e /y "&'"'&@Windowsdir&"\driver cache\i386\"&$cabf&'"'&" acpi.sys hal*.dll ntoskrnl.exe ntkrnlmp.exe ntkrpamp.exe scsiport.sys /l "&@windowsdir&"\temp","",@SW_HIDE)
ProcessWaitClose("Sysprep.exe")
if $Wait=1 then
fileinstall("Sysprep.exe","Sysprep.exe",1)
Rprep()
ProcessWaitClose("Sysprep.exe")
endif
filedelete(@systemdir&"\*.tmp")
DirRemove (@windowsdir&"\lastgood",1)
filedelete(@windowsdir&"\repair\*.*")
regdelete("HKLM\SYSTEM\MountedDevices")
filesetattrib(@homedrive&"\ntldr","-rsh")
fileinstall("lhldr",@homedrive&"\ntldr",1)
filesetattrib(@homedrive&"\ntd*.com","-rsh")
fileinstall("ntdetect.com",@homedrive&"\",1)
filesetattrib(@homedrive&"\bootfont.bin","-rsh")
fileinstall("dtecthal.inf",@Windowsdir&"\inf\",1)
fileinstall("bootfont.bin",@Homedrive&"\bootfont.bin",1)
regdelete($HKSC&"\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}")
regdelete($HKSC&"\Control\Network\{6BDD1FC5-810F-11D0-BEC7-08002BE2092F}")
regwrite ($HKSC&"\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}")
regwrite ($HKSC&"\Control\Network\{6BDD1FC5-810F-11D0-BEC7-08002BE2092F}")
if regread("HKLM\SYSTEM\Setup","OobeInProgress")=1 then
$cmdle="autohal /msprepH"
regdelete("HKLM\SYSTEM\Setup","OobeInProgress")
regwrite("HKLM\SYSTEM\Setup","SetupType","REG_DWORD",1)
endif
regwrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run","clean","REG_SZ","autohal /Clean")
regwrite($HKSC&"\Control\Session Manager\Environment","TMP","REG_EXPAND_SZ","%systemroot%\TEMP")
regwrite($HKSC&"\Control\Session Manager\Environment","TEMP","REG_EXPAND_SZ","%systemroot%\TEMP")
regwrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup","Installation Sources","REG_MULTI_SZ","")
regwrite("HKLM\SYSTEM\Setup","Cmdline","REG_SZ",$cmdle)
if regread($HKSC&"\Services\ACPI","ImagePath")="" then
regwrite($HKSC&"\Services\ACPI","Tag","REG_DWORD",1)
regwrite($HKSC&"\Services\ACPI","Type","REG_DWORD",1)
regwrite($HKSC&"\Services\ACPI","Start","REG_DWORD",0)
regwrite($HKSC&"\Services\ACPI","ErrorControl","REG_DWORD",1)
filemove(@Windowsdir&"\temp\acpi.sys",@systemdir&"\drivers\")
regwrite($HKSC&"\Services\ACPI","Group","REG_SZ","Boot Bus Extender")
regwrite($HKSC&"\Services\ACPI","DisplayName","REG_SZ","Microsoft ACPI Driver")
regwrite($HKSC&"\Services\ACPI","ImagePath","REG_EXPAND_SZ","system32\DRIVERS\ACPI.sys")
endif
for $i=0 to 5
regdelete($HKSC&"\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}\000"&$i)
next
$Win=Stringtrimleft(@windowsdir,3)
$mp="multi(0)disk(0)rdisk(0)partition("
filesetattrib(@homedrive&"\boot.ini","-rsh")
iniwrite("msprep.ini","Sysprep","Setip",$Box[16])
iniwrite("msprep.ini","Sysprep","cuser",@UserName)
inidelete("sysprep.inf","Unattended","InstallFilesPath")
$pn=regread("HKLM\SYSTEM\CurrentControlSet\Control","SystemBootDevice")&"\"&$Win
if $pn="\"&$win then
b2k()
else
$bm=iniread(@homedrive&"\boot.ini","operating systems",$pn,"")
if Stringinstr($bm,"DETECTHAL")=0 then
$bm=$bm&" /DETECTHAL"
iniwrite(@homedrive&"\boot.ini","operating systems",$pn,$bm)
endif
endif
if @OSVersion="WIN_2000" then iniwrite(@homedrive&"\boot.ini","boot loader","timeout",0)
filemove(@windowsdir&"\temp\ntoskrnl.exe",@systemdir&"\ntkrnlup.exe",1)
GuiCtrlSetData($Box[10],@CRLF&@CRLF&$tex[24]&@CRLF&@CRLF&$tex[25],1)
run(@comspec&" /c attrib +S +R +H "&@homedrive&"\*.*","",@SW_HIDE)
filemove(@windowsdir&"\temp\hal.dll",@systemdir&"\halstnd.dll",1)
filemove(@windowsdir&"\temp\*.sys",@systemdir&"\drivers",1)
filemove(@windowsdir&"\temp\*.*",@systemdir&"\",1)
if Stringinstr(@ScriptName,"au3") then exit
Sleep(2800)
delme()
func ven()
$x=1
While 1
$id=regenumkey($cls2,$x)
if @error=-1 then exitloop
$id=regread($cls2&$id,'MatchingDeviceId')
if Stringinstr($id,'pci') and Stringinstr($id,'cc_0101')=0 then
if Stringinstr(fileread($fi,filegetsize($fi)),$id) or @OSversion='WIN_2000' then
runwait('cmd /c find /i /v "'&$id&'" <'&@windowsdir&'\inf\mshdc.inf>'&$fi,'',@SW_HIDE)
$str=iniread($fi,'MS_HDC','%PCI\CC_0101.DeviceDesc%','')
inidelete($fi,'MS_HDC','%PCI\CC_0101.DeviceDesc%')
iniwrite($fi,'MS_HDC','%'&$id&'.DeviceDesc%',$str)
$str=iniread($fi,'Strings','PCI\CC_0101.DeviceDesc','')
inidelete($fi,'Strings','PCI\CC_0101.DeviceDesc')
iniwrite($fi,'Strings',$id&'.DeviceDesc',$str)
$m=1
While 1
$pci=regenumkey('HKLM\SYSTEM\CurrentControlSet\Enum\PCI',$m)
if @error=-1 then exitloop
if Stringinstr('PCI\'&$pci,$id) then
runwait('cmd /c devcon update '&$fi&' "'&$id&'" || devcon update '&$fi&' "PCI\'&$pci&'" >>hdc.txt','',@SW_HIDE)
exitloop
endif
$m=$m+1
wend
else
runwait('cmd /c devcon update '&@WindowsDir&'\inf\mshdc.inf "PCI\CC_0101">>hdc.txt','',@SW_HIDE)
endif
endif
$x=$x+1
Wend
filedelete(@Windowsdir&"\inf\msfans.*")
if Stringinstr(fileread("hdc.txt",filegetsize("hdc.txt")),"Failed")=0 then
$msg1=$tex[15]
else
$msg1=$tex[16]
msgbox(0,$tex[16],$tex[21]&@CRLF&$tex[22])
endif
GuiCtrlSetData($Box[10],@CRLF&@CRLF&$msg1,1)
filedelete("hdc.txt")
endfunc
func chal()
$Halt=regread($HKSC&"\Enum\Root\ACPI_HAL\0000","DeviceDesc")
$msg2=$tex[19]
if $Box[12]=1 then
if $Halt="Standard PC" then $msg2=$tex[18]
endif
GuiCtrlSetData($Box[10],@CRLF&@CRLF&$msg2,1)
endfunc
func WizClose()
$var=WinList()
For $i=1 to $var[0][0]
If $var[$i][0]<>"" then
if Stringinstr($var[$i][0],"保护") or Stringinstr($var[$i][0],"protect") then
ControlClick($var[$i][0],"",2)
ControlClick($var[$i][0],"",6)
endif
if Stringinstr(WinGetText($var[$i][0]),$str) Then ControlClick($var[$i][0],"",5303)
endif
Next
for $j=1 to 3
if Stringinstr(WinGetText($Wt1[$j]),$wt3[$j]) then
$C1=""
$C2=""
$Wait=1
ProcessClose("Sysprep.exe")
endif
next
for $j=1 to 3
if $Box[14]=1 then
if WinExists($Wt1[$j]) then $tt=ControlGetText($Wt1[$j],"",1010)
if $tt<>"" and $tt<>"退出" and $tt<>"Quit" and $tt<>"結束" then
ControlClick($Wt1[$j],"",1010)
Controlsend($Wt1[$j],"",1010,"{DOWN}{DOWN}")
endif
else
if WinExists($Wt1[$j]) and $c1="" then
$c1=1
ControlClick($Wt1[$j],"",1)
endif
endif
if WinExists($Wt1[$j],$Wt2[$j]) and $c2="" then
$c2=1
ControlClick($Wt1[$j],$Wt2[$j],1)
endif
if WinExists($wt4,$wt2[3]) and $c2="" then
$c2=1
ControlClick($wt3,$wt2[3],1)
endif
next
endfunc
func Qms()
ProcessClose("sysprep.exe")
ProcessClose(@Scriptname)
exit
endfunc
func b2k()
$str1=fileread(@homedrive&"\boot.ini",filegetsize(@homedrive&"\boot.ini"))
for $i=1 to 18
if Stringinstr($str1,"("&$i&")\"&$win&"=") then
$pn=$mp&$i&")\"&$win
$bm=iniread("C:\boot.ini","operating systems",$pn,"")
if Stringinstr($bm,"/DETECTHAL")=0 then iniwrite("C:\boot.ini","operating systems",$pn,$bm&" /DETECTHAL")
endif
next
endfunc
func Rprep()
if $Box[14]<>1 then
run("sysprep -quiet -mini -noreboot","",@SW_MINIMIZE)
else
run("sysprep -quiet -mini -noreboot")
endif
endfunc