无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 12146|回复: 15

仿onekey的AU3源码

[复制链接]
发表于 2012-7-21 21:23:19 | 显示全部楼层 |阅读模式
#NoTrayIcon
#Region ;**** 参数创建于 AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=..\..\万能GHOT备份&恢复.ico
#AutoIt3Wrapper_Outfile=..\..\万能GHOT备份&恢复.exe
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_Comment=运行参数 /yjbf 静默设置备份 /yjhf 静默设置恢复 /cancel 取消已有的设置
#AutoIt3Wrapper_Res_Description=一键备份&恢复程序
#AutoIt3Wrapper_Res_Fileversion=1.2.0.0
#AutoIt3Wrapper_Res_LegalCopyright=JS
#AutoIt3Wrapper_Res_SaveSource=y
#AutoIt3Wrapper_Res_Icon_Add=..\..\bf.ico
#AutoIt3Wrapper_Res_Icon_Add=..\..\hf.ico
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <GUIConstants.au3>
If $CmdLine[0] >= 1 Then
If $CmdLine[1] = "/yjbf" Then
SplashTextOn("请稍候", Chr(13) & "正在准备……", 250, 50, 10, 10, 2, 10)
boot()
FileInstall("JSGH", "c:\")
FileInstall("JSGH.img", "c:\JS\")
FileInstall("Ghost.exe", "c:\JS\")
$BFGhostIni = FileOpen("c:\js\ghost.bat", 10)
FileWrite($BFGhostIni, "cls" & @CRLF)
FileWrite($BFGhostIni, "@echo off" & @CRLF)
FileWrite($BFGhostIni, "attrib -r -s -h %s%:\pagefile.sys>nul" & @CRLF)
FileWrite($BFGhostIni, "del %s%:\pagefile.sys>nul" & @CRLF)
FileWrite($BFGhostIni, "xmsman -c>nul" & @CRLF)
FileWrite($BFGhostIni, "Ghost.exe -nousb -clone,mode=pdump,src=1:1,dst=d:\Ghost\winxpsp2.gho -z1 -sure -fro -rb ")
FileClose($BFGhostIni)
DirCreate("d:\Ghost\")
FileInstall("Ghost.exe", "d:\Ghost\Ghost.exe")
SplashOff()
Exit
EndIf
If $CmdLine[1] = "/yjhf" Then
If FileExists("d:\GHOST\WINXPSP2.gho") = 0 Then
MsgBox(262160, "找不到文件", "找不到d:\GHOST\WINXPSP2.gho " & Chr(13) & "请保证GHO文件在d:\GHOST\ ,两秒后会自动关闭", 2)
Exit
Else
$Info = SplashTextOn("请稍候", Chr(13) & "正在准备……", 250, 50, 10, 10, 2, 10)
boot()
FileInstall("JSGH", "c:\")
FileInstall("JSGH.img", "c:\JS\")
FileInstall("Ghost.exe", "c:\JS\")
$HFGhostIni = FileOpen("c:\js\ghost.bat", 10)
FileWrite($HFGhostIni, "cls" & @CRLF)
FileWrite($HFGhostIni, "@echo off" & @CRLF)
FileWrite($HFGhostIni, "attrib -r -s -h %s%:\pagefile.sys>nul" & @CRLF)
FileWrite($HFGhostIni, "del %s%:\pagefile.sys>nul" & @CRLF)
FileWrite($HFGhostIni, "xmsman -c>nul" & @CRLF)
FileWrite($HFGhostIni, "Ghost.exe -nousb -clone,mode=pload,src=d:\Ghost\WINXPSP2.GHO:1,dst=1:1 -sure -fro -rb")
FileClose($HFGhostIni)
DirCreate("d:\Ghost")
FileCopy("c:\ghost\*.*", "d:\Ghost", 9)
SplashOff()
EndIf
EndIf
If $CmdLine[1] = "/cancel" Then
If FileExists("c:\JS\boot.bak") = 1 Then
FileSetAttrib("C:\boot.ini", "-RSH")
FileCopy("c:\JS\boot.bak", "c:\boot.ini", 9)
FileSetAttrib("C:\boot.ini", "+RSH")
FileSetAttrib("C:\jsgh", "-RSH")
FileDelete("c:\jsgh")
DirRemove("c:\JS", 1)
Else
MsgBox(262160, "没有备份/还原请求", "没有备份/还原请求,两秒后自动关闭", 2)
EndIf
Exit
EndIf
EndIf
GUICreate("万能GHOT备份/恢复", 400, 330, -1, -1)
GUISetFont(9, 400)
FileInstall("logo.gif", "c:\")
GUICtrlCreatePic("c:\logo.gif", 0, 0, 0, 0)
FileDelete("c:\logo.gif")
GUICtrlCreateTab(5, 80, 390, 227)
;第一分页
$Tab1 = GUICtrlCreateTabItem("说明")
GUICtrlCreateGroup("", 15, 100, 370, 200)
GUICtrlCreateLabel(" 欢迎使用万能GHOST!" & Chr(13) & Chr(13) & " 一键备份:系统将会自动重启进入DOS运行ghost备份C盘到d:\ghost\winxpsp2.gho,备份完后自动重启,正常进入桌面。" & Chr(13) & " 一键恢复:系统将会自动重启进入DOS运行ghost恢复C盘从d:\ghost\winxpsp2.gho,恢复完后自动重启,正常进入桌面。" & Chr(13) & Chr(13) & " 手工操作,手工操作提供更自由的选项,备份/恢复更自由!" & Chr(13) & Chr(13) & " 本程序支持FAT32、NTFS分区、双硬盘!", 35, 115, 345, 120)
$NotBFHF = GUICtrlCreateButton("撤销备份/恢复请求", 50, 250, 300, 30)
$YJBF = GUICtrlCreateButton("一键备份", 25, 250, 100, 30)
$YJHF = GUICtrlCreateButton("一键恢复", 150, 250, 100, 30)
$DOS = GUICtrlCreateButton("GHOST手工操作", 275, 250, 100, 30)
If FileExists("c:\jsgh") = 1 Then
GUICtrlSetState($YJBF, $GUI_HIDE)
GUICtrlSetState($YJHF, $GUI_HIDE)
GUICtrlSetState($DOS, $GUI_HIDE)
GUICtrlSetState($NotBFHF, $GUI_SHOW)
Else
GUICtrlSetState($NotBFHF, $GUI_HIDE)
EndIf
;第二分页
$Tab2 = GUICtrlCreateTabItem("备份")
GUICtrlCreateGroup("备份分区:", 20, 110, 130, 50)
$BFCombo1 = GUICtrlCreateCombo("", 85, 105, 50, 20)
$BFVar1 = DriveGetDrive("FIXED")
If Not @error Then
For $Var1i = 1 To $BFVar1[0]
GUICtrlSetData(-1, $BFVar1[$Var1i], "c:")
Next
EndIf
$BFLabel1 = GUICtrlCreateLabel("已用空间", 25, 130, 120, 20)
GUICtrlSetData($BFLabel1, "c:已用空间:" & Round((DriveSpaceTotal("c:") - DriveSpaceFree("c:")) / 1024, 2) & "G")
$BFLabel2 = GUICtrlCreateLabel("可用空间", 25, 145, 120, 20)
GUICtrlSetData($BFLabel2, "d:可用空间:" & Round(DriveSpaceFree("d:\") / 1024, 2) & "G")
GUICtrlCreateGroup("备份选项:", 165, 110, 120, 50)
$BFCombo2 = GUICtrlCreateCombo("", 170, 125, 100, 17)
GUICtrlSetData(-1, "不压缩 |快速压缩|高压缩 |最高压缩", "快速压缩")
GUICtrlCreateGroup("GHO文件路径:", 20, 165, 350, 45)
$BFInput1 = GUICtrlCreateInput("D:\ghost\WINXPSP2.GHO", 30, 185, 250, 17)
$BFButton1 = GUICtrlCreateButton("选择", 290, 185, 50, 20)
GUICtrlCreateGroup("高级选项:", 25, 215, 335, 55)
$BFCheckbox1 = GUICtrlCreateCheckbox("自定义GHOST核心", 130, 225, 110, 17)
$BFCheckbox2 = GUICtrlCreateCheckbox("隐藏GHO文件", 255, 225, 90, 17)
$BFInput2 = GUICtrlCreateInput("", 35, 245, 250, 17)
GUICtrlSetState($BFInput2, $GUI_HIDE)
$BFButton2 = GUICtrlCreateButton("选择", 300, 243, 50, 20)
GUICtrlSetState($BFButton2, $GUI_HIDE)
FileInstall("bf.gif", "c:\")
GUICtrlCreatePic("c:\bf.gif", 300, 115, 0, 0)
FileDelete("c:\bf.gif")
$BFOK = GUICtrlCreateButton("确定", 50, 278, 300, 22)
;第三分页
$Tab3 = GUICtrlCreateTabItem("恢复")
GUICtrlCreateGroup("恢复分区:", 20, 110, 130, 50)
$HFCombo1 = GUICtrlCreateCombo("", 85, 105, 50, 20)
$HFVar1 = DriveGetDrive("FIXED")
If Not @error Then
For $Var1i = 1 To $HFVar1[0]
GUICtrlSetData(-1, $HFVar1[$Var1i], "c:")
Next
EndIf
$HFLabel1 = GUICtrlCreateLabel("全部空间", 25, 135, 120, 20)
GUICtrlSetData($HFLabel1, "c:全部空间:" & Round(DriveSpaceTotal("c:") / 1024, 2) & "G")
GUICtrlCreateGroup("GHO文件路径:", 20, 165, 350, 45)
$HFInput1 = GUICtrlCreateInput("D:\ghost\WINXPSP2.GHO", 30, 185, 250, 17)
$HFButton1 = GUICtrlCreateButton("选择", 290, 185, 50, 20)
GUICtrlCreateGroup("高级选项:", 25, 215, 335, 55)
$HFCheckbox1 = GUICtrlCreateCheckbox("自定义GHOST核心", 130, 225, 110, 17)
$HFCheckbox2 = GUICtrlCreateCheckbox("忽略 CRC 错误", 255, 225, 95, 17)
$HFInput2 = GUICtrlCreateInput("", 35, 245, 250, 17)
GUICtrlSetState($HFInput2, $GUI_HIDE)
$HFButton2 = GUICtrlCreateButton("选择", 300, 243, 50, 20)
GUICtrlSetState($HFButton2, $GUI_HIDE)
FileInstall("hf.gif", "c:\")
GUICtrlCreatePic("c:\hf.gif", 300, 115, 0, 0)
FileDelete("c:\hf.gif")
$HFOK = GUICtrlCreateButton("确定", 50, 278, 300, 22)
;第四分页
$Tab4 = GUICtrlCreateTabItem("关于")
GUICtrlCreateGroup("", 15, 100, 370, 200)
GUICtrlCreateGroup("", 55, 120, 290, 160)
GUICtrlCreateLabel("万能GHOST V1.2", 160, 150, 160, 20)
GUICtrlSetColor(-1, 0x008080)
GUICtrlCreateLabel("程序制作:JS", 160, 170, 93, 20)
GUICtrlCreateLabel("完成日期:2008年3月21日", 160, 190, 140, 20)
GUICtrlCreateLabel("内置GHOST版本:V11.0.2.1575", 100, 210, 180, 20)
$mailto = GUICtrlCreateLabel("Email:297259024@qq.com", 100, 230, 138, 20)
GUICtrlSetCursor(-1, 0)
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlCreateLabel("鸣谢:DONGHAI、YlmF、Skyfree", 100, 250, 200, 13)
GUICtrlSetColor(-1, 0xFF0000)
FileInstall("icon.gif", "c:\")
GUICtrlCreatePic("c:\icon.gif", 65, 140, 0, 0)
FileDelete("c:\icon.gif")
GUICtrlCreateTabItem("") ;==>结束分页标志
;状态栏
GUICtrlCreateGroup("", -2, 305, 999, 999)
If FileExists("d:\GHOST\WINXPSP2.gho") Then
$FileSize = Round(FileGetSize("d:\GHOST\WINXPSP2.gho") / 1048576, 3) & "M"
GUICtrlCreateLabel("发现D:\GHOST\WINXPSP2.gho" & " 大小:" & $FileSize, 10, 315, 240, 17)
Else
GUICtrlCreateLabel("未发现d:\GHOST\WINXPSP2.gho", 10, 315, 240, 17)
EndIf
$SpaceFree = Round(DriveSpaceFree("D:\") / 1, 3)
GUICtrlCreateLabel("D盘可用空间:" & $SpaceFree & "M", 250, 315, 150, 17)
GUISetState(@SW_SHOW)
$Task = "None"

While 1
$msg = GUIGetMsg()
Select
Case $msg = $NotBFHF
FileSetAttrib("C:\boot.ini", "-RSH")
FileCopy("c:\JS\boot.bak", "c:\boot.ini", 9)
FileSetAttrib("C:\boot.ini", "+RSH")
FileSetAttrib("C:\jsgh", "-RSH")
FileDelete("c:\jsgh")
DirRemove("c:\JS", 1)
GUICtrlSetState($NotBFHF, $GUI_HIDE)
GUICtrlSetState($YJBF, $GUI_SHOW)
GUICtrlSetState($YJHF, $GUI_SHOW)
GUICtrlSetState($DOS, $GUI_SHOW)
MsgBox(64, "撤销完成", "撤销备份/恢复请求完成!")
Case $msg = $DOS
SplashTextOn("请稍候", Chr(13) & "正在准备……", 250, 50, 10, 10, 2, 10)
boot()
FileInstall("JSGH", "c:\")
FileInstall("JSGH.img", "c:\JS\")
FileInstall("Ghost.exe", "c:\JS\")
$DOSIni = FileOpen("c:\js\ghost.bat", 10)
FileWrite($DOSIni, "cls" & @CRLF)
FileWrite($DOSIni, "@echo off" & @CRLF)
FileWrite($DOSIni, "xmsman -c>nul" & @CRLF)
FileWrite($DOSIni, "Ghost.exe")
FileClose($DOSIni)
Sleep(500)
If MsgBox(36, "询问", "进入DOS GHOST手工操作前的准备已完成,要立即重启吗?") = 6 Then
SplashOff()
SplashTextOn("请稍候", Chr(13) & "正在重启……", 250, 50, 10, 10, 2, 10)
Shutdown(6)
Else
SplashOff()
GUICtrlSetState($YJBF, $GUI_HIDE)
GUICtrlSetState($YJHF, $GUI_HIDE)
GUICtrlSetState($DOS, $GUI_HIDE)
GUICtrlSetState($NotBFHF, $GUI_SHOW)
EndIf
Case $msg = $BFCombo1
GUICtrlSetData($BFLabel1, GUICtrlRead($BFCombo1) & "已用空间:" & Round((DriveSpaceTotal(GUICtrlRead($BFCombo1)) - DriveSpaceFree(GUICtrlRead($BFCombo1))) / 1024, 2) & "G")
Case $msg = $BFInput1
If StringRight(GUICtrlRead($BFInput1), 4) = ".GHO" Then
GUICtrlSetData($BFLabel2, StringMid(GUICtrlRead($BFInput1), 1, 2) & "可用空间:" & Round(DriveSpaceFree(StringMid(GUICtrlRead($BFInput1), 1, 2)) / 1024, 2) & "G")
Else
If Not GUICtrlRead($BFInput1) = "" Then
MsgBox(16, "警告", "文件的扩展名不为“.GHO”")
GUICtrlSetData($BFInput1, "")
EndIf
EndIf
Case $msg = $BFButton1
$BFButton1Var1 = FileSaveDialog("选择GHO映像文件", "d:\ghost", "GHO映像文件(*.gho)", 18, "WINXPSP2.gho")
If StringRight($BFButton1Var1, 4) = ".gho" Then
GUICtrlSetData($BFInput1, $BFButton1Var1)
GUICtrlSetData($BFLabel2, StringMid(GUICtrlRead($BFInput1), 1, 2) & "可用空间:" & Round(DriveSpaceFree(StringMid(GUICtrlRead($BFInput1), 1, 2)) / 1024, 2) & "G")
Else
If Not $BFButton1Var1 = "" Then
MsgBox(16, "警告", "文件的扩展名不为“.GHO”")
EndIf
EndIf
Case $msg = $BFCheckbox1
If GUICtrlRead($BFCheckbox1) = $GUI_CHECKED Then
GUICtrlSetState($BFInput2, $GUI_SHOW)
GUICtrlSetState($BFButton2, $GUI_SHOW)
EndIf
If GUICtrlRead($BFCheckbox1) = $GUI_UNCHECKED Then
GUICtrlSetState($BFInput2, $GUI_HIDE)
GUICtrlSetState($BFButton2, $GUI_HIDE)
EndIf
Case $msg = $BFInput2
If StringRight(GUICtrlRead($BFInput2), 4) = ".exe" Then
If Not FileExists(GUICtrlRead($BFInput2)) = 1 Then
MsgBox(16, "警告", "找不到指定的GHOST程序”")
GUICtrlSetData($BFInput2, "")
EndIf
Else
If Not GUICtrlRead($BFInput2) = "" Then
MsgBox(16, "警告", "文件的扩展名不为“.EXE”")
GUICtrlSetData($BFInput2, "")
EndIf
EndIf
Case $msg = $BFButton2
$BFButton2Var1 = FileOpenDialog("选择GHOST程序", "d:\ghost", "EXE可执行文件(*.exe)", 3, "ghost.exe")
If StringRight($BFButton2Var1, 4) = ".exe" Then
GUICtrlSetData($BFInput2, $BFButton2Var1)
Else
If Not $BFButton2Var1 = "" Then
MsgBox(16, "警告", "文件的扩展名不为“.EXE”")
GUICtrlSetData($BFInput2, "")
EndIf
EndIf
Case $msg = $YJBF
If MsgBox(262433, "要一键全自动备份吗?(快速/不隐藏)", " 此命令将使系统重启并进入DOS用GHOST " & Chr(13) & "备份C盘到d:\GHOST\WINXPSP2.gho。D盘格式 " & Chr(13) & "既可以是 FAT32也可以是NTFS, 点击确定立 " & Chr(13) & "即重启并开始备份!") = 1 Then
SplashTextOn("请稍候", Chr(13) & "正在准备……", 250, 50, 10, 10, 2, 10)
boot()
FileInstall("JSGH", "c:\")
FileInstall("JSGH.img", "c:\JS\")
FileInstall("Ghost.exe", "c:\JS\")
$BFGhostIni = FileOpen("c:\js\ghost.bat", 10)
FileWrite($BFGhostIni, "cls" & @CRLF)
FileWrite($BFGhostIni, "@echo off" & @CRLF)
FileWrite($BFGhostIni, "attrib -r -s -h %s%:\pagefile.sys>nul" & @CRLF)
FileWrite($BFGhostIni, "del %s%:\pagefile.sys>nul" & @CRLF)
FileWrite($BFGhostIni, "xmsman -c>nul" & @CRLF)
FileWrite($BFGhostIni, "Ghost.exe -nousb -clone,mode=pdump,src=1:1,dst=d:\Ghost\winxpsp2.gho -z1 -sure -fro -rb ")
FileClose($BFGhostIni)
DirCreate("d:\Ghost\")
FileInstall("Ghost.exe", "d:\Ghost\Ghost.exe")
Sleep(500)
If MsgBox(36, "询问", "备份前的准备已完成,要立即重启吗?") = 6 Then
SplashOff()
SplashTextOn("请稍候", Chr(13) & "正在重启……", 250, 50, 10, 10, 2, 10)
Shutdown(6)
Else
SplashOff()
GUICtrlSetState($YJBF, $GUI_HIDE)
GUICtrlSetState($YJHF, $GUI_HIDE)
GUICtrlSetState($DOS, $GUI_HIDE)
GUICtrlSetState($NotBFHF, $GUI_SHOW)
EndIf
Else
EndIf
Case $msg = $BFOK
SplashTextOn("请稍候", Chr(13) & "正在准备……", 250, 50, 10, 10, 2, 10)
boot()
FileInstall("JSGH", "c:\")
FileInstall("JSGH.img", "c:\JS\")
DirCreate("d:\ghost")
If GUICtrlRead($BFCheckbox1) = $GUI_CHECKED Then
$BFOKVar1 = GUICtrlRead($BFInput2)
If $BFOKVar1 = "" Then
FileInstall("Ghost.exe", "c:\JS\")
Else
FileCopy($BFOKVar1, "c:\JS\GHOST.EXE", 8)
EndIf
Else
FileInstall("Ghost.exe", "c:\JS\")
EndIf
FileInstall("disk.exe", "c:\")
Run(@ComSpec & " /c c:\disk.exe", "", @SW_HIDE)
WinWaitActive("分区扇区对应", "")
$BFDisk = StringSplit(ControlGetText("分区扇区对应", "", "ThunderRT6TextBox1"), Chr(13))
ProcessClose("DISK.exe")
FileDelete("c:\DISK.exe")
For $var1 = 1 To $BFDisk[0] Step 1
If StringInStr($BFDisk[$var1], StringLeft(GUICtrlRead($BFCombo1), 1), 0) <> 0 Then
$BFOKVar2 = "src=" & StringRight($BFDisk[$var1], 3)
EndIf
Next
If GUICtrlRead($BFCombo2) = "不压缩 " Then $BFOKVar3 = " " ;压缩方式
If GUICtrlRead($BFCombo2) = "快速压缩" Then $BFOKVar3 = " -z1"
If GUICtrlRead($BFCombo2) = "高压缩 " Then $BFOKVar3 = " -z2"
If GUICtrlRead($BFCombo2) = "最高压缩" Then $BFOKVar3 = " -z9"
If GUICtrlRead($BFInput1) = "" Then
$BFOKVar4 = "dst=d:\Ghost\winxpsp2.gho"
Else
$BFOKVar4 = "dst=" & GUICtrlRead($BFInput1)
EndIf
If GUICtrlRead($BFCheckbox2) = $GUI_CHECKED Then
$BFOKVar5 = "attrib +h " & GUICtrlRead($BFInput1)
Else
$BFOKVar5 = ""
EndIf
$BFGhostIni = FileOpen("c:\js\ghost.bat", 10)
FileWrite($BFGhostIni, "cls" & @CRLF)
FileWrite($BFGhostIni, "@echo off" & @CRLF)
FileWrite($BFGhostIni, "attrib -r -s -h %s%:\pagefile.sys>nul" & @CRLF)
FileWrite($BFGhostIni, "del %s%:\pagefile.sys>nul" & @CRLF)
FileWrite($BFGhostIni, "xmsman -c>nul" & @CRLF)
FileWrite($BFGhostIni, "Ghost.exe -nousb -clone,mode=pdump," & $BFOKVar2 & "," & $BFOKVar4 & $BFOKVar3 & " -sure -fro -rb" & @CRLF)
FileWrite($BFGhostIni, $BFOKVar5)
FileClose($BFGhostIni)
DirCreate("d:\Ghost")
FileCopy("c:\ghost\*.*", "d:\Ghost", 9)
Sleep(500)
If MsgBox(36, "询问", "备份前的准备已完成,要立即重启吗?") = 6 Then
SplashOff()
SplashTextOn("请稍候", Chr(13) & "正在重启……", 250, 50, 10, 10, 2, 10)
Shutdown(6)
Else
SplashOff()
GUICtrlSetState($YJBF, $GUI_HIDE)
GUICtrlSetState($YJHF, $GUI_HIDE)
GUICtrlSetState($DOS, $GUI_HIDE)
GUICtrlSetState($NotBFHF, $GUI_SHOW)
EndIf
Case $msg = $HFCombo1
GUICtrlSetData($HFLabel1, GUICtrlRead($HFCombo1) & "全部空间:" & Round(DriveSpaceTotal(GUICtrlRead($HFCombo1)) / 1024, 2) & "G")
Case $msg = $HFInput1
If StringRight(GUICtrlRead($HFInput1), 4) = ".GHO" Then
If Not FileExists(GUICtrlRead($HFInput1)) = 1 Then
MsgBox(16, "警告", "找不到指定的GHO映像文件")
GUICtrlSetData($HFInput1, "")
EndIf
Else
If Not GUICtrlRead($HFInput1) = "" Then
MsgBox(16, "警告", "文件的扩展名不为“GHO”")
GUICtrlSetData($HFInput1, "")
EndIf
EndIf
Case $msg = $HFButton1
$HFButton1Var1 = FileOpenDialog("选择GHO映像文件", "d:\ghost", "GHO映像文件(*.gho)|所有文件(*.*)", 3, "WINXPSP2.gho")
If StringRight($HFButton1Var1, 4) = ".GHO" Then
If Not FileExists($HFButton1Var1) = 1 Then
MsgBox(16, "警告", "找不到指定的GHO映像文件")
Else
GUICtrlSetData($HFInput1, $HFButton1Var1)
EndIf
Else
If Not $HFButton1Var1 = "" Then
MsgBox(16, "警告", "文件的扩展名不为“GHO”")
EndIf
EndIf
Case $msg = $HFCheckbox1
If GUICtrlRead($HFCheckbox1) = $GUI_CHECKED Then
GUICtrlSetState($HFInput2, $GUI_SHOW)
GUICtrlSetState($HFButton2, $GUI_SHOW)
EndIf
If GUICtrlRead($HFCheckbox1) = $GUI_UNCHECKED Then
GUICtrlSetState($HFInput2, $GUI_HIDE)
GUICtrlSetState($HFButton2, $GUI_HIDE)
EndIf
Case $msg = $HFInput2
If StringRight(GUICtrlRead($HFInput2), 4) = ".exe" Then
If Not FileExists(GUICtrlRead($HFInput2)) = 1 Then
MsgBox(16, "警告", "找不到指定的GHOST程序”")
GUICtrlSetData($HFInput2, "")
EndIf
Else
If Not GUICtrlRead($HFInput2) = "" Then
MsgBox(16, "警告", "文件的扩展名不为“.EXE”")
GUICtrlSetData($HFInput2, "")
EndIf
EndIf
Case $msg = $HFButton2
$HFButton2Var1 = FileOpenDialog("选择GHOST程序", "d:\ghost", "EXE可执行文件(*.exe)|所有文件(*.*)", 3, "ghost.exe")
If StringRight($HFButton2Var1, 4) = ".exe" Then
GUICtrlSetData($HFInput2, $HFButton2Var1)
Else
If Not $HFButton2Var1 = "" Then
MsgBox(16, "警告", "文件的扩展名不为“.EXE”")
GUICtrlSetData($HFInput2, "")
EndIf
EndIf
Case $msg = $HFCheckbox2
If GUICtrlRead($HFCheckbox2) = $GUI_CHECKED Then $HFCheckbox2Var1 = "忽略 CRC 错误"
If GUICtrlRead($HFCheckbox2) = $GUI_UNCHECKED Then $HFCheckbox2Var1 = "不忽略 CRC 错误"
Case $msg = $YJHF
If MsgBox(262433, "要一键全自动恢复吗?", " 此命令将使系统重启并进入DOS用GHOST " & Chr(13) & "恢复C盘从d:\GHOST\WINXPSP2.gho。" & Chr(13) & " 警告!此命令将会把您放在C盘的数据清空! " & Chr(13) & "点击下面的按钮将立即重启并开始恢复!") = 1 Then
If FileExists("d:\GHOST\WINXPSP2.gho") = 0 Then
MsgBox(262160, "找不到文件", "找不到d:\GHOST\WINXPSP2.gho " & Chr(13) & "请保证GHO文件在d:\GHOST\")
Else
$Info = SplashTextOn("请稍候", Chr(13) & "正在准备……", 250, 50, 10, 10, 2, 10)
boot()
FileInstall("JSGH", "c:\")
FileInstall("JSGH.img", "c:\JS\")
FileInstall("Ghost.exe", "c:\JS\")
$HFGhostIni = FileOpen("c:\js\ghost.bat", 10)
FileWrite($HFGhostIni, "cls" & @CRLF)
FileWrite($HFGhostIni, "@echo off" & @CRLF)
FileWrite($HFGhostIni, "attrib -r -s -h %s%:\pagefile.sys>nul" & @CRLF)
FileWrite($HFGhostIni, "del %s%:\pagefile.sys>nul" & @CRLF)
FileWrite($HFGhostIni, "xmsman -c>nul" & @CRLF)
FileWrite($HFGhostIni, "Ghost.exe -nousb -clone,mode=pload,src=d:\Ghost\WINXPSP2.GHO:1,dst=1:1 -sure -fro -rb")
FileClose($HFGhostIni)
DirCreate("d:\Ghost")
FileCopy("c:\ghost\*.*", "d:\Ghost", 9)
Sleep(500)
If MsgBox(36, "询问", "恢复前的准备已完成,要立即重启吗?") = 6 Then
SplashOff()
SplashTextOn("请稍候", Chr(13) & "正在重启……", 250, 50, 10, 10, 2, 10)
Shutdown(6)
Else
SplashOff()
GUICtrlSetState($YJBF, $GUI_HIDE)
GUICtrlSetState($YJHF, $GUI_HIDE)
GUICtrlSetState($DOS, $GUI_HIDE)
GUICtrlSetState($NotBFHF, $GUI_SHOW)
EndIf
EndIf
Else
EndIf
Case $msg = $HFOK
If Not GUICtrlRead($HFInput1) = "" Then
SplashTextOn("请稍候", Chr(13) & "正在准备……", 250, 50, 10, 10, 2, 10)
boot()
FileInstall("JSGH", "c:")
FileInstall("JSGH.img", "c:\JS\")
If GUICtrlRead($HFCheckbox1) = $GUI_CHECKED Then
$HFOKVar1 = GUICtrlRead($HFInput2)
If $HFOKVar1 = "" Then
FileInstall("Ghost.exe", "c:\JS\")
Else
FileCopy($HFOKVar1, "c:\JS\GHOST.EXE", 8)
EndIf
Else
FileInstall("Ghost.exe", "c:\JS\")
EndIf
$HFOKVar2 = "src=" & GUICtrlRead($HFInput1)
FileInstall("disk.exe", "c:\")
Run(@ComSpec & " /c c:\disk.exe", "", @SW_HIDE)
WinWaitActive("分区扇区对应", "")
$BFDisk = StringSplit(ControlGetText("分区扇区对应", "", "ThunderRT6TextBox1"), Chr(13))
ProcessClose("DISK.exe")
FileDelete("c:\DISK.exe")
For $var1 = 1 To $BFDisk[0] Step 1
If StringInStr($BFDisk[$var1], StringLeft(GUICtrlRead($HFCombo1), 1), 0) <> 0 Then
$HFOKVar3 = "dst=" & StringRight($BFDisk[$var1], 3)
EndIf
Next
If GUICtrlRead($HFCheckbox2) = $GUI_CHECKED Then
$HFOKVar4 = "-crcignore"
Else
$HFOKVar4 = ""
EndIf
$HFGhostIni = FileOpen("c:\js\ghost.bat", 10)
FileWrite($HFGhostIni, "cls" & @CRLF)
FileWrite($HFGhostIni, "@echo off" & @CRLF)
FileWrite($HFGhostIni, "attrib -r -s -h %s%:\pagefile.sys>nul" & @CRLF)
FileWrite($HFGhostIni, "del %s%:\pagefile.sys>nul" & @CRLF)
FileWrite($HFGhostIni, "xmsman -c>nul" & @CRLF)
FileWrite($HFGhostIni, "Ghost.exe -nousb -clone,mode=pload," & $HFOKVar2 & ":1," & $HFOKVar3 & " -sure -fro -rb " & $HFOKVar4)
FileClose($HFGhostIni)
Sleep(500)
If MsgBox(36, "询问", "恢复前的准备已完成,要立即重启吗?") = 6 Then
SplashOff()
SplashTextOn("请稍候", Chr(13) & "正在重启……", 250, 50, 10, 10, 2, 10)
Shutdown(6)
Else
SplashOff()
GUICtrlSetState($YJBF, $GUI_HIDE)
GUICtrlSetState($YJHF, $GUI_HIDE)
GUICtrlSetState($DOS, $GUI_HIDE)
GUICtrlSetState($NotBFHF, $GUI_SHOW)
EndIf
Else
MsgBox(16, "警告", "您未输入GHO文件的路径")
EndIf
Case $msg = $mailto
Run("C:\Program Files\Internet Explorer\IEXPLORE.EXE mailto:297259024@qq.com", "")
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
EndSelect
WEnd
Func boot()
DirCreate("c:\JS\")
FileSetAttrib("C:\boot.ini", "-RSH")
FileCopy("C:\boot.ini", "c:\JS\boot.bak", 8)
IniWrite("c:\boot.ini", "boot loader", "timeout", "1")
IniWrite("c:\boot.ini", "boot loader", "default", "c:\jsgh")
IniWrite("c:\boot.ini", "operating systems", "c:\jsgh", "JS万能GHOST")
EndFunc ;==>boot
 楼主| 发表于 2012-7-21 21:24:40 | 显示全部楼层
FileInstall("JSGH", "c:\")
是指要有一个jsgh文件,打包是用到,解压到C:
TM截图未命名.png

点评

很古老了,只有xpsp2.没有更新的?  详情 回复 发表于 2017-6-14 15:57
回复

使用道具 举报

发表于 2012-7-21 21:37:59 | 显示全部楼层
支持开源,收下备用,谢谢分享。
回复

使用道具 举报

发表于 2012-7-21 22:03:10 | 显示全部楼层
感谢提供源码,下载研究了
哎  我玩不好AU3  正想找人请教 用纯AU3如何将一个文件直接写入指定扇区 
回复

使用道具 举报

 楼主| 发表于 2012-8-4 16:14:01 | 显示全部楼层
学习自己写个一键PE系统
回复

使用道具 举报

发表于 2012-9-17 09:43:29 | 显示全部楼层
楼主可以提供所需要的文件吗?
回复

使用道具 举报

发表于 2012-9-17 14:28:51 | 显示全部楼层
╮(╯_╰)╭ 这个是我写的………
好吧,没法证明…

点评

我说看用户名怎么这么眼熟呢  详情 回复 发表于 2014-1-1 16:49
。。。。。。。。。。。。。。。。  发表于 2013-4-10 20:09
回复

使用道具 举报

发表于 2014-1-1 16:49:13 | 显示全部楼层
j3l11234 发表于 2012-9-17 14:28
╮(╯_╰)╭ 这个是我写的………
好吧,没法证明…

我说看用户名怎么这么眼熟呢
回复

使用道具 举报

发表于 2014-6-7 23:22:46 | 显示全部楼层
提供附件 吧 一起这样好一些
回复

使用道具 举报

发表于 2016-11-18 16:17:55 | 显示全部楼层
onekey好像8.2.3之后就没有再更新过。。。能有人继续就好了。
回复

使用道具 举报

发表于 2016-12-11 09:45:21 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

发表于 2017-6-14 15:45:46 | 显示全部楼层
Error adding files:JSGH,在脚本目录和C:\目录下建个假的JSGH文件,没有后缀名的,也不能编译通过。
回复

使用道具 举报

发表于 2017-6-14 15:55:46 | 显示全部楼层
是哪个onekey?
回复

使用道具 举报

发表于 2017-6-14 15:57:15 | 显示全部楼层
jonepjxh 发表于 2012-7-21 21:24
FileInstall("JSGH", "c:\")
是指要有一个jsgh文件,打包是用到,解压到C:

很古老了,只有xpsp2.没有更新的?
回复

使用道具 举报

发表于 2017-6-16 08:11:13 | 显示全部楼层
xmzhqw 发表于 2017-6-14 15:57
很古老了,只有xpsp2.没有更新的?

这不是重点,程序只是调用ghost.exe进行备份不还原而已,xpsp2.gho只是作者用了这个名字而已,你改成win7_64.gho也行啊。关键问题是:FileInstall("JSGH", "c:\")
是指要有一个jsgh文件,打包是用到,解压到C,这个文件是什么呢?是ghost程序包吗?新建一个同名文件,运行也是不通过的。
回复

使用道具 举报

发表于 2017-6-16 17:46:29 | 显示全部楼层
╮(╯_╰)╭
我是作者

直接去github拿吧,美滋滋
https://github.com/j3l11234/universal-ghost

评分

参与人数 1无忧币 +5 收起 理由
freesoft00 + 5

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-3-29 02:01

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表