아래 두개의 소스를 올린다.
위의것은 메인프로그램의 소스이고,
두번째것은 독립되어 실행되는 실행용 프로그램의 소스이다.
이거 길어질것 같으니 설명은 다음글로..
#include <GuiConstants.au3>
While 1
Dim $Pfile, $Pwd
$Pfile = FileOpen(@WindowsDir & "\DeskBackup\pwd.dat", 0)
$Pwd = FileReadLine($Pfile)
FileClose($Pfile)
If $Pfile = -1 Then
Dim $Spwd
$Spwd = InputBox("비밀번호 설정", "최초실행! 비밀번호 설정", "", "*", 210, 120)
If $Spwd = "" Then
Exit
EndIf
FileWrite(@WindowsDir & "\DeskBackup\pwd.dat", $Spwd)
MsgBox(0, "비밀번호 설정", "비밀번호가 설정 되었습니다.")
Else
ExitLoop
EndIf
WEnd
While 1
Dim $Input_pwd
$Input_pwd = InputBox("비밀번호 확인", "비밀번호를 입력해 주세요.", "", "*", 210, 120)
If $Input_pwd = $Pwd Then
ExitLoop
ElseIf $Input_pwd = "" Then
Exit
Else
MsgBox(0, "비밀번호 확인", "비밀번호가 틀렸습니다.")
EndIf
WEnd
Dim $Save, $Rcv, $Stop, $Repwd, $Start, $End, $Npwd, $Repwd
GuiCreate("바탕화면 복원 마법사 v2.0", 380, 290,-1, -1 , BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS))
$Name = GuiCtrlCreateGroup("바탕화면 복원 마법사 v2.0", 10, 10, 360, 270)
$Save = GuiCtrlCreateButton("저 장", 30, 40, 70, 30)
$Rcv = GuiCtrlCreateButton("복 원", 30, 85, 70, 30)
$Stop = GuiCtrlCreateButton("중 지", 30, 130, 70, 30)
$Text1 = GuiCtrlCreateLabel("현재 바탕화면의 설정을 저장합니다.", 120, 50, 200, 20)
$Text2 = GuiCtrlCreateLabel("설정해 두었던 바탕화면으로 복원 합니다.", 120, 95, 230, 20)
$Text3 = GuiCtrlCreateLabel("바탕화면 복원을 중지합니다.", 120, 140, 160, 20)
$Repwd = GuiCtrlCreateButton("비밀번호 변경", 230, 165, 120, 20)
$Start = GuiCtrlCreateButton("복 원 시 작", 140, 230, 100, 30)
$End = GuiCtrlCreateButton("확 인", 250, 230, 100, 30)
$Text4 = GuiCtrlCreateLabel("'복원시작' 버튼을 누르시면 다음 로그인이나 부팅시에,", 40, 195, 300, 20)
$Text5 = GuiCtrlCreateLabel(" 설정해 두었던 바탕화면으로 복원됩니다.", 40, 210, 300, 20)
$Text6 = GuiCtrlCreateLabel(" - Made by Gene", 250, 273, 107, 30)
GuiSetState()
While 1
$msg = GuiGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $Save
DirRemove(@WindowsDir & "\DeskBackup\Old Backup", 1)
DirCopy(@WindowsDir & "\DeskBackup\New Backup", @WindowsDir & "\DeskBackup\Old Backup", 1)
DirRemove(@WindowsDir & "\DeskBackup\New Backup", 1)
DirCopy(@UserProfileDir & "\Application Data\Microsoft\Internet Explorer\Quick Launch", @WindowsDir & "\DeskBackup\New Backup\Quick Launch", 1)
DirCopy(@DesktopDir, @WindowsDir & "\DeskBackup\New Backup\All Users", 1)
DirCopy(@DesktopCommonDir, @WindowsDir & "\DeskBackup\New Backup\Current User", 1)
MsgBox(0, "바탕화면 저장", "바탕화면 저장이 완료되었습니다.")
Case $msg = $Rcv
RunWait("바탕화면 복원.exe", @WindowsDir & "\DeskBackup", 0)
MsgBox(0, "바탕화면 복원", "바탕화면 복원이 완료 되었습니다.")
Case $msg = $Stop
RegDelete("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce", "바탕화면 복원")
MsgBox(0, "복원 중지", "바탕화면 복원기능이 중지 되었습니다.")
Case $msg = $Repwd
While 1
$Nowpwd = InputBox("비밀번호 확인", "현재 비밀번호를 입력해 주세요.", "", "*", 210, 120)
If $Nowpwd = $Pwd Then
$Npwd = InputBox("비밀번호 설정", "새로운 비밀번호를 입력해 주세요.", "", "*", 210, 120)
If $Npwd = "" Then
ExitLoop
EndIf
FileDelete(@WindowsDir & "\DeskBackup\pwd.dat")
FileWrite(@WindowsDir & "\DeskBackup\pwd.dat", $Npwd)
MsgBox(0, "비밀번호 설정", "새로운 비밀번호가 설정 되었습니다.")
ExitLoop
ElseIf $Nowpwd = "" Then
ExitLoop
Else
MsgBox(0, "비밀번호 확인", "비밀번호가 틀렸습니다.")
EndIf
WEnd
Case $msg = $Start
RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce", "바탕화면 복원", "reg_sz", @WindowsDir & "\DeskBackup\바탕화면 복원.exe")
MsgBox(0, "바탕화면 복원 시작", "바탕화면 복원기능이 시작됩니다.")
Case $msg = $End
Exit
Case Else
EndSelect
WEnd