Sign in to follow this  
Followers 0

Microsoft SQL Server 2000 installer

1 post in this topic

Posted (edited)

Posted Image

Will inststall it with default config. (I recommend to put this thing into your SQLval.exe folder)

go 1 will install from folder specified

go 2 will Ask where to extract exe , then it asks for exe location & then will install the whole thing & after install ask to delete SQLVAL folder. (the one you extracted the exe to).

#include <GUIConstants.au3>
#include <IE.au3>
#include <Misc.au3>

Opt("GUIOnEventMode", 1)  ; Change to OnEvent mode 


    $I_read_sapass = IniRead(@ScriptDir & "\_macro_conf.ini", "Sa", "pass",'')

#Region ### START Koda GUI section ### Form=
$Mainwindow = GUICreate("Automated Microsoft SQL Server 2000 installer", 375, 314, 315, 339)
$Label1 = GUICtrlCreateLabel("Authentication Mode:", 8, 31, 105, 17)

$Radio_mode_local = GUICtrlCreateRadio("Windows local", 8, 50, 129, 25)
$Radio_mode_mixed = GUICtrlCreateRadio("Mixed Mode (Windows Authentication and SQL Server Authentication)", 8, 71, 361, 25)

$Label2 = GUICtrlCreateLabel("Set sa password:", 16, 99, 85, 17)
$Input_sa_pass = GUICtrlCreateInput($I_read_sapass, 16, 117, 153, 21)
If $I_read_sapass <> '' Then
    GUICtrlSetState($Radio_mode_mixed, $GUI_CHECKED)
Else
    GUICtrlSetState(-1, $GUI_DISABLE)
EndIf

$Download_SQL = GUICtrlCreateButton("Go get SQL..from microsoft", 186, 24, 177, 25, 0)

$Checkbox_install_from_folder = GUICtrlCreateCheckbox("Browse existing SQLEVAL folder to install from", 8, 180, 345, 17)
$Input_install_from_folder = GUICtrlCreateInput("@ScriptDir\SQLEVAL\", 77, 203, 281, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button_Install_SQL_fromfolder = GUICtrlCreateButton("Go", 8, 202, 65, 25, 0)

$Checkbox_Install_from_file = GUICtrlCreateCheckbox("Browse SQLEVAL.exe, choose where to Extract it", 7, 242, 345, 17)
$Input_Install_from_file = GUICtrlCreateInput("@ScriptDir\SQLEVAL.EXE", 78, 264, 281, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button_Install_SQL_fromfile = GUICtrlCreateButton("Go", 6, 263, 65, 25)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

;=============================================================================
;GUI Events
;=============================================================================
GUISetOnEvent($GUI_EVENT_MAXIMIZE, "_Maximize") 
GUISetOnEvent($GUI_EVENT_MINIMIZE, "_Minimize") 
GUISetOnEvent($GUI_EVENT_CLOSE, "_EXIT")
GUICtrlSetOnEvent($Download_SQL, "_Download_SQL") 
GUICtrlSetOnEvent($Button_Install_SQL_fromfile, "_install_SQL_file") 
GUICtrlSetOnEvent($Button_Install_SQL_fromfolder, "_install_SQL_folder") ; no extract


GUICtrlSetOnEvent($Radio_mode_local, "_local_mode")
GUICtrlSetOnEvent($Radio_mode_mixed, "_mixed_mode") 

GUICtrlSetOnEvent($Checkbox_install_from_folder, "_install_from_folder")
GUICtrlSetOnEvent($Checkbox_Install_from_file, "_Install_from_file") 



;=============================================================================
;GUI functions
;=============================================================================
func _install_from_folder()
    GUICtrlSetState($Button_Install_SQL_fromfolder, $GUI_ENABLE)
    GUICtrlSetState($Input_Install_from_file, $GUI_DISABLE)
    GUICtrlSetState($Button_Install_SQL_fromfile, $GUI_DISABLE) 
    GUICtrlSetData($Input_Install_from_file,'')
    GUICtrlSetState($Checkbox_Install_from_file, $GUI_UNCHECKED)    
EndFunc
func _Install_from_file()
    GUICtrlSetState($Button_Install_SQL_fromfile, $GUI_ENABLE)
    GUICtrlSetState($Input_install_from_folder, $GUI_DISABLE)
    GUICtrlSetState($Button_Install_SQL_fromfolder, $GUI_DISABLE)
    GUICtrlSetData($Input_install_from_folder,'')
    GUICtrlSetState($Checkbox_install_from_folder, $GUI_UNCHECKED)  
EndFunc

func _local_mode()
    GUICtrlSetState($Input_sa_pass, $GUI_DISABLE)
EndFunc
func _mixed_mode()
    GUICtrlSetState($Input_sa_pass, $GUI_ENABLE)
EndFunc
    
func _Minimize()
    GUISetState(@SW_HIDE, $Mainwindow)
EndFunc

func _Maximize()
    If WinActive("Getlinks_v1.4") Then
        GUISetState(@SW_HIDE, $Mainwindow) 
    Else
        GUISetState(@SW_SHOW, $Mainwindow) 
        GUISetState(@SW_RESTORE,$Mainwindow)
    EndIf
EndFunc

;~ =================================================================================
;Download SQL Server 2000 Evaluation Edition Release A 
;~ =================================================================================
func _Download_SQL()
    $oIE = _IECreate ("http://www.microsoft.com/downloads/details.aspx?FamilyID=d20ba6e1-f44c-4781-a6bb-f60e02dc1335&displaylang=en",0,1,0,1)
EndFunc


func _install_SQL_folder()
        If GUICtrlRead($Radio_mode_mixed) <> $GUI_CHECKED And GUICtrlRead($Radio_mode_local) <> $GUI_CHECKED  Then
            MsgBox(0, "", "Please select Authentication Mode.")
            Return
        EndIf
        If GUICtrlRead($Checkbox_Install_from_file) <> $GUI_CHECKED And GUICtrlRead($Checkbox_install_from_folder) <> $GUI_CHECKED  Then
            MsgBox(0, "", "Please select eather to extract SQLEVAL.exe & install SQL server or" & @CRLF & @CRLF & " if SQLEVAL.exe was already extracted, then show me the folder where was it extracted.")
            Return
        EndIf       
        ;~ =================================================================================
        ; Browse where was SQLEVAL.exe extrcted
        ;~ =================================================================================
        MsgBox(0, "", "Choose where was SQLEVAL.exe extrcted")
        $message_SQL_va0 = "Choose existing Folder"
        $SQL_val_path0 = FileopenDialog($message_SQL_va0, @DesktopDir & "\", "plz Enter Existing Folder(*.SQLVAL)",2,'plz Enter Existing Folder and press open')
        If @error Then
            Return ; if hit cancel Exit function
        Else
            $split = StringSplit($SQL_val_path0,'\')
            $S_replace = StringReplace($SQL_val_path0,$split[$split[0]],''); get the existing folder
            $SQL_val_path0 = $S_replace
            
            $msbox_deletefolder = MsgBox(1,'','Is this Correct ?'& @CRLF & @CRLF & $SQL_val_path0)          
            If $msbox_deletefolder = 2 Then Return ; if pressed cancel try again            
                GUICtrlSetData($Input_install_from_folder,$SQL_val_path0)
            EndIf
            
        ;~ =================================================================================
        ;Starting installation
        ;~ =================================================================================
        ToolTip('Starting Installation please wait it may take a while..',0,0) ; remove tooltip
        ShellExecute($SQL_val_path0 & 'x86\setup\setupsql.exe') ; start setup
    
        While 1
            Sleep(500)
             If WinWait('Enterprise Evaluation Edition') Then
             ToolTip('') ; remove tooltip
                 ExitLoop ; if done extractiing continue
             EndIf
        WEnd    
                 WinWait('Welcome')
                 WinActivate('Welcome')
                 ControlClick('Welcome', "", "Button1") ; NExt
                 
                 WinWait('Computer Name')
                 ControlClick('Computer Name', "", "Button7") ; Choose local computer & NExt
                 
                 WinWait('Installation Selection')
                 ControlClick('Installation Selection', "", "Button6") ;Select new instance & NExt

                 WinWait('User Information')
                 ControlClick('User Information', "", "Button2") ; NExt
                 
                 WinWait('Software License Agreement')
                 ControlClick('Software License Agreement', "", "Button2") ; yes

                 WinWait('Installation Definition')
                 ControlClick('Installation Definition', "", "Button6") ; Choose sever & client tools

                 WinWait('Instance Name')
                 ControlClick('Instance Name', "", "Button3")  ; Default NExt

                 WinWait('Setup Type')
                 ControlClick('Setup Type', "", "Button9") ; Typical NExt
                 
                 ;hire we choose to use system Local account
                 WinWait('Services Accounts')
                 WinActivate('Services Accounts')
                 Sleep(1000)
                 ControlClick('Services Accounts', "", "Button8") 
                 Sleep(1000)
                 ControlClick('Services Accounts', "", "Button13") ; next
                 
                 ; Hire we set sa pass
                 WinWait('Authentication Mode')
                 WinActivate('Authentication Mode')
                 Sleep(1000)
                If GUICtrlRead($Radio_mode_mixed) = $GUI_CHECKED Then
                    ControlClick('Authentication Mode', "", "Button2") ;choose mixed radio
                    ControlsetText('Authentication Mode', "", "Edit1",GUICtrlRead($Input_sa_pass)) 
                    ControlsetText('Authentication Mode', "", "Edit2",GUICtrlRead($Input_sa_pass)) ; set sa pass
                    Sleep(1000)
                    ControlClick('Authentication Mode', "", "Button5") ;next
                Else
                    ControlClick('Authentication Mode', "", "Button1") ;choose local radio
                EndIf
                    
                 WinWait('Start Copying Files')
                 ControlClick('Start Copying Files', "", "Button1") ; NExt


                 WinWait('Setup Complete')
                 ControlClick('Setup Complete', "", "Button4") ; FINISH
             
            $msbox_deletefolder = MsgBox(1,'','Setup Complete, The SQLEVAL folder is not needed anymore'& @CRLF & @CRLF & 'Delete it?' )            
EndFunc


func _install_SQL_file()
        If GUICtrlRead($Radio_mode_mixed) <> $GUI_CHECKED And GUICtrlRead($Radio_mode_local) <> $GUI_CHECKED  Then
            MsgBox(0, "", "Please select Authentication Mode.")
            Return
        EndIf
        If GUICtrlRead($Checkbox_Install_from_file) <> $GUI_CHECKED And GUICtrlRead($Checkbox_install_from_folder) <> $GUI_CHECKED  Then
            MsgBox(0, "", "Please select eather to extract SQLEVAL.exe & install SQL server or" & @CRLF & @CRLF & " if SQLEVAL.exe was already extracted, then show me the folder where was it extracted.")
            Return
        EndIf       
        ;~ =================================================================================
        ; Browse where to Extract SQLEVAL.exe 
        ;~ =================================================================================
        MsgBox(0, "", "Choose where we should extract SQLEVAL.exe ")
        $message_SQL_va0 = "Choose Folder to extract"
        $SQL_val_path0 = FilesaveDialog($message_SQL_va0, @DesktopDir & "\", "Folder to Unzip(*.SQLVAL)",16,'SQLEVAL')
        If @error Then
            Return ; if hit cancel Exit function
        Else
            $msbox_deletefolder = MsgBox(1,'','Extract it to:'& @CRLF & @CRLF & $SQL_val_path0 & ' ?')          
            If $msbox_deletefolder = 2 Then Return ; if pressed cancel try again            
                GUICtrlSetData($Input_Install_from_file,$SQL_val_path0)
        EndIf

        ;~ =================================================================================
        ; Browse SQLEVAL.exe Microsoft SQL Server 2000
        ;~ =================================================================================
        $message_SQL_val = "Choose SQLEVAL.exe"
        $SQL_val_path1 = FileOpenDialog($message_SQL_val, @ScriptDir & "\", "loacate SQLEVAL(*.exe)", 1 + 4 ,'SQLEVAL.exe')
        If @error Then Return ; if hit cancel Exit function

        ToolTip('Extracting SQLEVAL.exe, it may take a while ... Please wait!',0,0)
        Run($SQL_val_path1)
        ToolTip('') ; remove tooltip

        
        $extract_ = 'Installation Folder' ; wait for install window to be active
        WinWait($extract_)
        WinActivate($extract_)
            ControlsetText($extract_, "", "Edit1",$SQL_val_path0) ; get the extraxt folder
            ControlClick($extract_, "", "Button4") ; press Finish


        While 1
            Sleep(500)
             If WinActive('PackageForTheWeb','The specified output folder does not exist.  Create it?') Then ControlClick('PackageForTheWeb', "", "Button1") ;press OK if folder not exist          
             If WinWait('PackageForTheWeb','The package has been delivered successfully.') Then
                 ControlClick('PackageForTheWeb', "", "Button1")
                 ExitLoop ; if done extractiing continue
             EndIf
        WEnd    
             
        ;~ =================================================================================
        ;Starting installation
        ;~ =================================================================================
        ToolTip('Starting Installation please wait it may take a while..',0,0) ; remove tooltip
        ShellExecute($SQL_val_path0 & '\x86\setup\setupsql.exe') ; start setup
    
        While 1
            Sleep(500)
             If WinWait('Enterprise Evaluation Edition') Then
             ToolTip('') ; remove tooltip
                 ExitLoop ; if done extractiing continue
             EndIf
        WEnd    
                 WinWait('Welcome')
                 WinActivate('Welcome')
                 ControlClick('Welcome', "", "Button1") ; NExt
                 
                 WinWait('Computer Name')
                 ControlClick('Computer Name', "", "Button7") ; Choose local computer & NExt
                 
                 WinWait('Installation Selection')
                 ControlClick('Installation Selection', "", "Button6") ;Select new instance & NExt

                 WinWait('User Information')
                 ControlClick('User Information', "", "Button2") ; NExt
                 
                 WinWait('Software License Agreement')
                 ControlClick('Software License Agreement', "", "Button2") ; yes

                 WinWait('Installation Definition')
                 ControlClick('Installation Definition', "", "Button6") ; Choose sever & client tools

                 WinWait('Instance Name')
                 ControlClick('Instance Name', "", "Button3")  ; Default NExt

                 WinWait('Setup Type')
                 ControlClick('Setup Type', "", "Button9") ; Typical NExt
                 
                 ;hire we choose to use system Local account
                 WinWait('Services Accounts')
                 WinActivate('Services Accounts')
                 Sleep(1000)
                 ControlClick('Services Accounts', "", "Button8") 
                 Sleep(1000)
                 ControlClick('Services Accounts', "", "Button13") ; next
                 
                 ; Hire we set sa pass
                 WinWait('Authentication Mode')
                 WinActivate('Authentication Mode')
                 Sleep(1000)
                If GUICtrlRead($Radio_mode_mixed) = $GUI_CHECKED Then
                    ControlClick('Authentication Mode', "", "Button2") ;choose mixed radio
                    ControlsetText('Authentication Mode', "", "Edit1",GUICtrlRead($Input_sa_pass)) 
                    ControlsetText('Authentication Mode', "", "Edit2",GUICtrlRead($Input_sa_pass)) ; set sa pass
                    Sleep(1000)
                    ControlClick('Authentication Mode', "", "Button5") ;next
                Else
                    ControlClick('Authentication Mode', "", "Button1") ;choose local radio
                EndIf
                    
                 WinWait('Start Copying Files')
                 ControlClick('Start Copying Files', "", "Button1") ; NExt


                 WinWait('Setup Complete')
                 ControlClick('Setup Complete', "", "Button4") ; FINISH
;~               
            $msbox_deletefolder = MsgBox(1,'','Setup Complete, The SQLEVAL folder is not needed anymore'& @CRLF & @CRLF & 'Delete it?' )            
            If $msbox_deletefolder = 1 Then DirRemove($SQL_val_path0, 1); if pressed OK then
EndFunc


func _EXIT()
;~  IniWrite(@ScriptDir & "\_macro_conf.ini", "Sa", "pass",GUICtrlRead($Input_sa_pass))
    Exit
EndFunc
While 1
    Sleep(100)
WEnd

step_1_install_SQL.au3

Edited by goldenix

Share this post


Link to post
Share on other sites



Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0