Jump to content
Sign in to follow this  
goldenix

Microsoft SQL Server 2000 installer

Recommended Posts

goldenix

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

My Projects:[list][*]Guide - ytube step by step tut for reading memory with autoitscript + samples[*]WinHide - tool to show hide windows, Skinned With GDI+[*]Virtualdub batch job list maker - Batch Process all files with same settings[*]Exp calc - Exp calculator for online games[*]Automated Microsoft SQL Server 2000 installer[*]Image sorter helper for IrfanView - 1 click opens img & move ur mouse to close opened img[/list]

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  

×