#region - SciTe4AutoIt3 install script - (Nullsoft)
#include <Common_Functions.au3>
Opt('TrayIconDebug', 1)
Break(False)

; Installer.
$executable = 'SciTe4AutoIt3 2007.05.22.exe'
; Default group folder in startmenu.
$group = 'AutoIt 3\Scite'
; Installation folder in Program Files.
$directory = 'AutoIt3'

; Add property files
$source = @ScriptDir & '\Files\UserProfile\SciteUser.properties'
$destination = @UserProfileDir & '\SciteUser.properties'
If FileExists($source) And Not FileExists($destination) Then
    FileCopy($source, $destination)
EndIf

; Run the installer.
$pid = _Nullsoft('/S BETA')
ProcessWaitClose($pid)

; Run update installer.
If FileExists(@ScriptDir & '\Scite4Au3Upd.exe') Then
    Sleep(500)
    RunWait(@ScriptDir & '\Scite4Au3Upd.exe /S')
    Sleep(500)
EndIf

; Add files.
$source = @ScriptDir & '\Files\Scite4AutoIt3'
$destination = @ProgramFilesDir & '\' & $directory
If FileExists($source) Then DirCopy($source, $destination)

; Create Hardlinks.
$source = @ScriptDir & '\Files\ResHacker.exe'
$destination = @CommonFilesDir & '\Reshacker\ResHacker.exe'
$hardlink = @ProgramFilesDir & '\' & $directory & '\AutoIt3Wrapper\ResHacker.exe'
; Extract SFX if needed.
If Not FileExists($destination) And FileExists($source) Then RunWait($source & ' /S')
If Not FileExists($hardlink) Then
    FileCreateNTFSLink($destination, $hardlink)
    $destination = @CommonFilesDir & '\Reshacker\ResHacker.hlp'
    $hardlink = @ProgramFilesDir & '\' & $directory & '\AutoIt3Wrapper\ResHacker.hlp'
    FileCreateNTFSLink($destination, $hardlink)
EndIf

; Remove Edit and use Open as default for Edit.
$key = 'HKLM\SOFTWARE\Classes\AutoIt3Script\Shell'
If RegDelete($key & '\Edit') And Not @error Then
    RegWrite($key & '\Open', '', 'Reg_sz', 'Edit Script')
EndIf
If RegRead($key, '') <> 'Open' Then
    RegWrite($key, '', 'Reg_sz', 'Open')
EndIf
; Hide contextmenu entries
RegWrite($key & '\Compile with Options', 'extended', 'Reg_sz', '')

; Remove shortcuts.
If _Programs('Scite.lnk') Then
    DirCopy($group, 'Development', 1)
    DirRemove('AutoIt v3', 1)
    FileChangeDir('Development')
    FileDelete('GettingStarted.lnk')
    FileDelete('SciteConfig.lnk')
    FileDelete('ScriptWriter.lnk')
    FileDelete('Switch-Definitions.lnk')
    FileDelete('Tidy.lnk')
    FileDelete('Uninstall.lnk')
    FileDelete('Website.lnk')
    FileMove('Scite.lnk', 'Scite4AutoIt3.lnk', 1)
EndIf
_Desktop('Scite.lnk')

Exit
#endregion

Func _AutoItVersion($scriptver)
    Local $au3ver, $expectver, $exitcode
    If Not @Compiled Then
        $au3ver = StringSplit(@AutoItVersion, '.')
        $expectver = StringSplit($scriptver, '.')
        If @error Then
            Return ConsoleWrite('_AutoItVersion() error with using StringSplit()' & @LF)
            Exit -2
        EndIf
        For $i = 1 To $expectver[0]
            If $au3ver[$i] = $expectver[$i] Then
                ContinueLoop
            ElseIf $au3ver[$i] > $expectver[$i] Then
                Return
            Else
                MsgBox(0x40010, @ScriptName, 'Need atleast ' & $scriptver & ' to execute this script', 10)
                $exitcode = StringReplace($scriptver, '.', '')
                Exit $exitcode
            EndIf
        Next
    EndIf
EndFunc