NSIS Wiki:Sandbox: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
(trying ..)
 
(41 intermediate revisions by 19 users not shown)
Line 4: Line 4:


Keep the page content below this note.
Keep the page content below this note.
[[Category:Browse Wiki Maintenance Services by Name]]


<hr />
<hr />
<!-- keep the note above intact and put the page content right below -->
<!-- keep the note above intact and put the page content right below -->


Ok Lets try the following script for installing an ASP.NET site:
This is only a test.


<code>
test captcha
; SITENAMESITE_INSTALL.nsi
; THIS INSTALLER INSTALLS THE APPLICATION LAYER OF THE SITENAME-Tool
;2008.11.19 Yordan Georgiev
;Purpose: This NSI script packs all the nessessary source files for running the SITENAME site


;--------------------------------
!include "FileFunc.nsh"
!include "MUI2.nsh"
!include "WordFunc.nsh"
!include "Time.nsh"
!include "Sections.nsh"
!insertmacro WordFind


The quick brown fox jumps over the lazy dog.


<span id="anchor_name"></span>
== Some long complicated title that no one would want to refer to directly ==


!insertmacro MUI_LANGUAGE "English"
LIBRARY SYSTEM OF THE FISHER VALLEY
!define /date MYDATE "%Y%b%d.%H%M%S" ;not really needed but yet
kjnb/'/l,m'l'lk
!define SERVER $R0 ;Temp variable for holding the option chosen for server
!define CHOSENSERVER $R9 ;Temp variable for holding the NOTE :


<code>
!include "MUI2.nsh"  # change this to !include MUI.nsh to see how the code works successfully for MUI1


LangString MUI_TEXT_INSTALLING_TITLE ${LANG_ENGLISH} "SITENAME SITE Installation"
; Local bitmap path.
LangString MUI_TEXT_INSTALLING_SUBTITLE ${LANG_ENGLISH} "Installing SITENAME SITE"
!define BITMAP_FILE res.bmp
LangString MUI_TEXT_FINISH_TITLE ${LANG_ENGLISH} "SITENAME SITE Ready"
LangString MUI_TEXT_FINISH_SUBTITLE ${LANG_ENGLISH} "SITENAME SITE Installed"
LangString MUI_TEXT_ABORT_TITLE ${LANG_ENGLISH} "Abort SITENAME SITE Installation ?!"
LangString MUI_TEXT_ABORT_SUBTITLE ${LANG_ENGLISH} "Abort SITENAME SITE Installation ?!"


XPStyle On
; --------------------------------------------------------------------------------------------------
AutoCloseWindow false
; Installer Settings
; --------------------------------------------------------------------------------------------------
Name "Background Bitmap"
OutFile "bgbitmap.exe"
ShowInstDetails show
ShowInstDetails show
; !define MUI_HEADERIMAGE #  this is responsible for the big window
; !define MUI_UI_HEADERIMAGE ".\dimm_beta_img.exe" # modded exe
; --------------------------------------------------------------------------------------------------
; Modern UI Settings
; --------------------------------------------------------------------------------------------------
!define MUI_COMPONENTSPAGE_NODESC
!define MUI_FINISHPAGE_NOAUTOCLOSE
!define MUI_CUSTOMFUNCTION_GUIINIT MyGUIInit


;Things that need to be extracted on startup (keep these lines before any File command!)
; --------------------------------------------------------------------------------------------------
;Only useful for BZIP2 compression
; Definitions
;Use ReserveFile for your own InstallOptions INI files too!
; --------------------------------------------------------------------------------------------------
 
!ifndef LR_LOADFROMFILE
ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll"
    !define LR_LOADFROMFILE    0x0010
ReserveFile "SITENAMEsite_conf.ini"
!endif
 
!ifndef LR_CREATEDIBSECTION
 
    !define LR_CREATEDIBSECTION 0x2000
  Name "SITENAME-Tool Application Layer installer for Any Environment"
!endif
  ; THIS IS THE SETUP.EXE FILE PRODUCED BY THE SCRIPT
!ifndef IMAGE_BITMAP
  OutFile "G:\Setup_SITENAME.exe"
    !define IMAGE_BITMAP        0
 
!endif
 
!ifndef SS_BITMAP
  InstallDir "D:\SITENAME"  ; CHANGE THIS PATH AS THE DEFAULT ONE  TO PROVIDE THE USER TO INSTALL
    !define SS_BITMAP          0x0000000E
;Prompt for Vista Admin Rights 
!endif
  RequestExecutionLevel admin
!ifndef WS_CHILD
 
    !define WS_CHILD            0x40000000
;--------------------------------
!endif
 
!ifndef WS_VISIBLE
  ;Pages
     !define WS_VISIBLE          0x10000000
  ;Order of pages
!endif
Page custom SetCustom ValidateCustom "Choose the right server to install t" ;Custom page.
!define HWND_TOP            0
  Page directory
!define SWP_NOSIZE          0x0001
  Page instfiles
!define SWP_NOMOVE          0x0002
  Page custom CustomPage
!define IDC_BITMAP          1500
!define stRECT "(i, i, i, i) i"
 
Var hBitmap
 
 
  UninstPage uninstConfirm
  UninstPage instfiles
 
;--------------------------------
; Declaration of user variables (Var command), allowed charaters for variables names : [a-z][A-Z][0-9] and copy_'
Var "Info"
Var "InfoOK"
 
;--------------------------------
; Installer
 
 
 
;**************************************************************************************************
Section "Components"
 
  ;Get Install Options dialog user input
 
  ReadINIStr ${SERVER} "$PLUGINSDIR\SITENAMEsite_conf.ini" "Field 2" "State"
  DetailPrint "Install option=${SERVER}"
  ReadINIStr ${SERVER} "$PLUGINSDIR\SITENAMEsite_conf.ini" "Field 3" "State"
  DetailPrint "Install option=${SERVER}"
  ReadINIStr ${SERVER} "$PLUGINSDIR\SITENAMEsite_conf.ini" "Field 4" "State"
  DetailPrint "Install option=${SERVER}"
  ReadINIStr ${SERVER} "$PLUGINSDIR\SITENAMEsite_conf.ini" "Field 5" "Text"
  DetailPrint "Info=${SERVER}"
 
  DetailPrint "CHOSENSERVER=${CHOSENSERVER}"
SectionEnd
;**************************************************************************************************
 
 
Section
;CREATE BACKUP OF THE EXISTING SITE IF ANY
 
${time::GetLocalTime} $R0
${time::TimeString} "$R0" $0 $1 $2 $3 $4 $5
/*
0 - date
1 - month
2 - year
3 - hour
4 - minute
5 - seconds
*/
 
;CREATE THE BACKUP DIRECTORY BASED ON THE TIMESTAMP
CreateDirectory "$INSTDIR.$2$1$0.$3$4$5"
Rename $INSTDIR "$INSTDIR.$2$1$0.$3$4$5"
;CopyFiles "$INSTDIR\*.*" "$INSTDIR.$2$1$0.$3$4$5" 0
 
SectionEnd
;**************************************************************************************************
;**************************************************************************************************
 
Section "Unpacking" SecDummy
 
; MessageBox MB_OK "The installation directory you choosed is $INSTDIR . Press OK to proceed"
   
 
CreateDirectory $INSTDIR
SetOutPath $INSTDIR
; HERE UNZIP ACTUALLY THE FILES
; DO NOT INCLUDE FILES CONTAINING "test"  *.MDF *.ldf
File /r  /x *.MDF /x *.exclude /x *.ldf /x *.pl /x *.nsis /x *.cmd *.cs  *.aspx *.aspx.cs *.dll *.css *.resx *.config *.dll *.pdb *.js *.bmp *.gif *.jpg *.png *.master *.master.cs
      
SectionEnd
;**************************************************************************************************
 
 
 
 
;**************************************************************************************************
Section "Unpacking bin folder" SecUnpackBin
 
; HERE WE UNZIP THE FILES FOR THE BIN DIRECTOR
;CreateDirectory "D:\bin\SITENAME_TEST\"
;SetOutPath "D:\bin\SITENAME_TEST\"
;File /r *.cmd *.dll *.exe
;DELETE ALL EXE FILES
 
SectionEnd
;**************************************************************************************************
 
 
 
;**************************************************************************************************
Section
;FIND OUT WHICH APPLICATION ARE WE INSTALLING
;NOTE THIS ASSUMES INSTALLATION IN THE D:\ DRIVE
;SO LETS ASSUME INSTALLING D:\SITENAME
 
StrCpy $R0 "$INSTDIR"
${WordFind} $R0 "\" "-02" $R1
DetailPrint "I saw  $R1"
 
WriteUninstaller "$R1\Uninstall_SITENAMESITE.exe"
SectionEnd
;$R1=D:
 
Section
StrCpy $R2 "$INSTDIR"
${WordFind} $R2 "\" "-01" $R3
DetailPrint "I saw  $R3"
SectionEnd
;$R3=SITENAME
 
Section "SETUPCONNECTION ENVIRONMENT"
 
;INFORM THE STARTING OF THE COPY
DetailPrint "Setting up the resource file for the server "
;COPY THE SERVER CONFIG FILES FOR THIS APPLICATION
;COPY THE SERVER FILE AS FROM SERVER.FILE TO FILE
;Delete the Web.config file from the development
Delete "$INSTDIR\Web.config"
;server = heitv156lab.devlab.nokia.com
DetailPrint "I saw  ${CHOSENSERVER} Followed by space"
CopyFiles "$INSTDIR\INSTALL\${CHOSENSERVER}.$R3.Web.config" "$INSTDIR\Web.config"
;${CHOSENSERVER}
;COPY THE App_GlobalResources folder
;Delete the App_GlobalResources from the development
Delete "$INSTDIR\App_GlobalResources\*.*"
;Copy the server.app.App_GlobalResources to it's correct place
CopyFiles "$INSTDIR\INSTALL\${CHOSENSERVER}.$R3.App_GlobalResources\*.*" "$INSTDIR\App_GlobalResources\"
;NOW DELETE THE INSTALL DIRECTORY CONTAINING THE DIFFERENT SETUP FILES
 


; --------------------------------------------------------------------------------------------------
; Pages
; --------------------------------------------------------------------------------------------------
!define MUI_PAGE_CUSTOMFUNCTION_SHOW WelcomePageShow
!insertmacro MUI_PAGE_WELCOME


;    Var /GLOBAL "AnotherVar"
!insertmacro MUI_LANGUAGE English


;    StrCpy $AnotherVar "test"
; --------------------------------------------------------------------------------------------------
; Macros
; --------------------------------------------------------------------------------------------------
; Destroy a window.
!macro DestroyWindow HWND IDC
     GetDlgItem $R0 ${HWND} ${IDC}
    System::Call `user32::DestroyWindow(i R0)`
!macroend


SectionEnd
; Give window transparent background.
!macro SetTransparent HWND IDC
    GetDlgItem $R0 ${HWND} ${IDC}
    SetCtlColors $R0 0x444444 transparent
!macroend


; Refresh window.
!macro RefreshWindow HWND IDC
    GetDlgItem $R0 ${HWND} ${IDC}
    ShowWindow $R0 ${SW_HIDE}
    ShowWindow $R0 ${SW_SHOW}
!macroend


 
; --------------------------------------------------------------------------------------------------
 
; Functions
;--------------------------------
; --------------------------------------------------------------------------------------------------
; Uninstaller
Function MyGUIInit
 
    ; Extract bitmap image.
Section "Uninstall"
    InitPluginsDir
 
    ReserveFile `${BITMAP_FILE}`
    StrCpy $Info "SITENAME SITE uninstalled successfully."
    File `/ONAME=$PLUGINSDIR\res.bmp` `${BITMAP_FILE}`
    Delete "$R1\Uninst.exe"
    ; Get the size of the window.
    RmDir $INSTDIR
    System::Call `*${stRECT} .R0`
 
    System::Call `user32::GetClientRect(i $HWNDPARENT, i R0)`
SectionEnd
    System::Call `*$R0${stRECT} (, , .R1, .R2)`
 
    System::Free $R0
Function un.OnUninstSuccess
    ; Create bitmap control.
 
    System::Call `kernel32::GetModuleHandle(i 0) i.R3`
    HideWindow
    System::Call `user32::CreateWindowEx(i 0, t "STATIC", t "", i ${SS_BITMAP}|${WS_CHILD}|${WS_VISIBLE}, i 0, i 0, i R1, i R2, i $HWNDPARENT, i ${IDC_BITMAP}, i R3, i 0) i.R1`
    MessageBox MB_OK "$Info"
    System::Call `user32::SetWindowPos(i R1, i ${HWND_TOP}, i 0, i 0, i 0, i 0, i ${SWP_NOSIZE}|${SWP_NOMOVE})`
   
    ; Set the bitmap.
    System::Call `user32::LoadImage(i 0, t "$PLUGINSDIR\res.bmp", i ${IMAGE_BITMAP}, i 0, i 0, i ${LR_CREATEDIBSECTION}|${LR_LOADFROMFILE}) i.s`
    Pop $hBitmap
    SendMessage $R1 ${STM_SETIMAGE} ${IMAGE_BITMAP} $hBitmap
    ; Set transparent backgrounds.
    !insertmacro SetTransparent $HWNDPARENT 3
    !insertmacro SetTransparent $HWNDPARENT 1
    !insertmacro SetTransparent $HWNDPARENT 2
    !insertmacro SetTransparent $HWNDPARENT 1034
    !insertmacro SetTransparent $HWNDPARENT 1037
    !insertmacro SetTransparent $HWNDPARENT 1038
    !insertmacro SetTransparent $HWNDPARENT 1028
    !insertmacro SetTransparent $HWNDPARENT 1256
    ; !insertmacro SetTransparent $HWNDPARENT 1045
    !insertmacro SetTransparent $HWNDPARENT 1035
    ; Remove unwanted controls.
    !insertmacro DestroyWindow  $HWNDPARENT 1256
    !insertmacro DestroyWindow  $HWNDPARENT 1028
    ; !insertmacro DestroyWindow  $HWNDPARENT 1039
    !insertmacro DestroyWindow  $HWNDPARENT 1045    # dimm remove line from bottom
    ; !insertmacro DestroyWindow  $HWNDPARENT 1035
    ; !insertmacro DestroyWindow  $HWNDPARENT 1256
FunctionEnd
FunctionEnd


Function OnInstSuccess


StrCpy $Info "SITENAME SITE installed successfully !!!"
Function RefreshParentControls
    HideWindow
    !insertmacro RefreshWindow  $HWNDPARENT 1037
    MessageBox MB_OK "$InfoOK"
    !insertmacro RefreshWindow  $HWNDPARENT 1038
   
FunctionEnd
FunctionEnd


Function WelcomePageShow
      # Sets background image
    System::Call `user32::LoadImage(i 0, t "$PLUGINSDIR\res.bmp", i ${IMAGE_BITMAP}, i 0, i 0, i ${LR_CREATEDIBSECTION}|${LR_LOADFROMFILE}) i.s`
    Pop $hBitmap
    ; SendMessage $bitmapWindow ${STM_SETIMAGE} ${IMAGE_BITMAP} $hBitmap
      # Start solution
    SetCtlColors $mui.WelcomePage ${CTRL_COLOUR} transparent
    SetCtlColors $mui.WelcomePage.text ${CTRL_COLOUR} transparent
    SetCtlColors $mui.WelcomePage.title 0x333333 transparent
    !insertmacro DestroyWindow  $HWNDPARENT 1037
    !insertmacro DestroyWindow  $HWNDPARENT 1038
    !insertmacro DestroyWindow  $HWNDPARENT 1036
    SetCtlColors $0 222425 transparent
    System::Call `user32::DestroyWindow(i $mui.WelcomePage.Image)`


;------------------------------------------------------------------------------------
    Call RefreshParentControls
Function CustomPage
  SectionGetFlags ${Section_Name} $R0
  IntOp $R0 $R0 & ${SF_SELECTED}
  IntCmp $R0 ${SF_SELECTED} show
  Abort
  show:
FunctionEnd
FunctionEnd
    ; BrandingText ""


Function .onInit
; Free loaded resources.
 
Function .onGUIEnd
  ;Extract InstallOptions files
    ; Destroy the bitmap.
  ;$PLUGINSDIR will automatically be removed when the installer closes
    System::Call `gdi32::DeleteObject(i s)` $hBitmap
 
  InitPluginsDir
  File /oname=$PLUGINSDIR\SITENAMEsite_conf.ini "SITENAMEsite_conf.ini"
 
FunctionEnd
FunctionEnd


Function SetCustom
; --------------------------------------------------------------------------------------------------
; Dummy section
; --------------------------------------------------------------------------------------------------
Section "Dummy Section"
SectionEnd


  ;Display the InstallOptions dialog
</code>


  Push ${SERVER}
==CSS==


    InstallOptions::dialog "$PLUGINSDIR\SITENAMEsite_conf.ini"
<code>O01lI</code><hr>
    Pop ${SERVER}
<code style="font-family: monospace;">O01lI</code><hr>
 
<code style="font-family: monospace,monospace;">O01lI</code><hr>
  Pop ${SERVER}
<code style="font-family: monospace,serif;">O01lI</code><hr>
 
<pre>O01lI</pre><hr>
FunctionEnd
<pre style="font-family: monospace;">O01lI</pre><hr>
 
<pre style="font-family: monospace,monospace;">O01lI</pre><hr>
Function ValidateCustom
<pre style="font-family: monospace,serif;">O01lI</pre><hr>
 
  ReadINIStr ${SERVER} "$PLUGINSDIR\SITENAMEsite_conf.ini" "Field 2" "State"
ReadINIStr ${CHOSENSERVER} "$PLUGINSDIR\SITENAMEsite_conf.ini" "Field 2" "Text"
  StrCmp ${SERVER} 1 done
 
  ReadINIStr ${SERVER} "$PLUGINSDIR\SITENAMEsite_conf.ini" "Field 3" "State"
  ReadINIStr ${CHOSENSERVER} "$PLUGINSDIR\SITENAMEsite_conf.ini" "Field 3" "Text"
  StrCmp ${SERVER} 1 done
 
  ReadINIStr ${SERVER} "$PLUGINSDIR\SITENAMEsite_conf.ini" "Field 4" "State"
  ReadINIStr ${CHOSENSERVER} "$PLUGINSDIR\SITENAMEsite_conf.ini" "Field 4" "Text"
  StrCmp ${SERVER} 1 done
    MessageBox MB_ICONEXCLAMATION|MB_OK "You must select at least one install option!"
    Abort
 
  done:
 
FunctionEnd
 
  Function .onInstSuccess
        MessageBox MB_OK "SITENAME site installed correctly"
  FunctionEnd
 
 
  Function un.onUserAbort
    MessageBox MB_YESNO "Abort uninstall?" IDYES NoCancelAbort
      Abort ; causes uninstaller to not quit.
    NoCancelAbort:
  FunctionEnd
 
  Function un.onInit
    MessageBox MB_YESNO "This will uninstall. Continue?" IDYES NoAbort
      Abort ; causes uninstaller to quit.
    NoAbort:
  FunctionEnd
 
</code>

Latest revision as of 17:15, 15 April 2023

This is where test stuff should be posted, if you don't know how things appear, or want to test if something works which can't be seen by just previewing the page.

Right now, there is nothing being done to this page regularly to delete contents. Maybe a bot or the server will be used for the task, but nothing is sure.

Keep the page content below this note.


This is only a test.

test captcha


The quick brown fox jumps over the lazy dog.

Some long complicated title that no one would want to refer to directly

LIBRARY SYSTEM OF THE FISHER VALLEY kjnb/'/l,m'l'lk

!include "MUI2.nsh" # change this to !include MUI.nsh to see how the code works successfully for MUI1


Local bitmap path.

!define BITMAP_FILE res.bmp

--------------------------------------------------------------------------------------------------
Installer Settings
--------------------------------------------------------------------------------------------------

Name "Background Bitmap" OutFile "bgbitmap.exe" ShowInstDetails show

!define MUI_HEADERIMAGE # this is responsible for the big window
!define MUI_UI_HEADERIMAGE ".\dimm_beta_img.exe" # modded exe
--------------------------------------------------------------------------------------------------
Modern UI Settings
--------------------------------------------------------------------------------------------------

!define MUI_COMPONENTSPAGE_NODESC !define MUI_FINISHPAGE_NOAUTOCLOSE !define MUI_CUSTOMFUNCTION_GUIINIT MyGUIInit

--------------------------------------------------------------------------------------------------
Definitions
--------------------------------------------------------------------------------------------------

!ifndef LR_LOADFROMFILE

   !define LR_LOADFROMFILE     0x0010

!endif !ifndef LR_CREATEDIBSECTION

   !define LR_CREATEDIBSECTION 0x2000

!endif !ifndef IMAGE_BITMAP

   !define IMAGE_BITMAP        0

!endif !ifndef SS_BITMAP

   !define SS_BITMAP           0x0000000E

!endif !ifndef WS_CHILD

   !define WS_CHILD            0x40000000

!endif !ifndef WS_VISIBLE

   !define WS_VISIBLE          0x10000000

!endif !define HWND_TOP 0 !define SWP_NOSIZE 0x0001 !define SWP_NOMOVE 0x0002 !define IDC_BITMAP 1500 !define stRECT "(i, i, i, i) i" Var hBitmap

--------------------------------------------------------------------------------------------------
Pages
--------------------------------------------------------------------------------------------------

!define MUI_PAGE_CUSTOMFUNCTION_SHOW WelcomePageShow !insertmacro MUI_PAGE_WELCOME

!insertmacro MUI_LANGUAGE English

--------------------------------------------------------------------------------------------------
Macros
--------------------------------------------------------------------------------------------------
Destroy a window.

!macro DestroyWindow HWND IDC

   GetDlgItem $R0 ${HWND} ${IDC}
   System::Call `user32::DestroyWindow(i R0)`

!macroend

Give window transparent background.

!macro SetTransparent HWND IDC

   GetDlgItem $R0 ${HWND} ${IDC}
   SetCtlColors $R0 0x444444 transparent

!macroend

Refresh window.

!macro RefreshWindow HWND IDC

   GetDlgItem $R0 ${HWND} ${IDC}
   ShowWindow $R0 ${SW_HIDE}
   ShowWindow $R0 ${SW_SHOW}

!macroend

--------------------------------------------------------------------------------------------------
Functions
--------------------------------------------------------------------------------------------------

Function MyGUIInit

   ; Extract bitmap image.
   InitPluginsDir
   ReserveFile `${BITMAP_FILE}`
   File `/ONAME=$PLUGINSDIR\res.bmp` `${BITMAP_FILE}`
   ; Get the size of the window.
   System::Call `*${stRECT} .R0`
   System::Call `user32::GetClientRect(i $HWNDPARENT, i R0)`
   System::Call `*$R0${stRECT} (, , .R1, .R2)`
   System::Free $R0
   ; Create bitmap control.
   System::Call `kernel32::GetModuleHandle(i 0) i.R3`
   System::Call `user32::CreateWindowEx(i 0, t "STATIC", t "", i ${SS_BITMAP}|${WS_CHILD}|${WS_VISIBLE}, i 0, i 0, i R1, i R2, i $HWNDPARENT, i ${IDC_BITMAP}, i R3, i 0) i.R1`
   System::Call `user32::SetWindowPos(i R1, i ${HWND_TOP}, i 0, i 0, i 0, i 0, i ${SWP_NOSIZE}|${SWP_NOMOVE})`
   ; Set the bitmap.
   System::Call `user32::LoadImage(i 0, t "$PLUGINSDIR\res.bmp", i ${IMAGE_BITMAP}, i 0, i 0, i ${LR_CREATEDIBSECTION}|${LR_LOADFROMFILE}) i.s`
   Pop $hBitmap
   SendMessage $R1 ${STM_SETIMAGE} ${IMAGE_BITMAP} $hBitmap
   ; Set transparent backgrounds.
   !insertmacro SetTransparent $HWNDPARENT 3
   !insertmacro SetTransparent $HWNDPARENT 1
   !insertmacro SetTransparent $HWNDPARENT 2
   !insertmacro SetTransparent $HWNDPARENT 1034
   !insertmacro SetTransparent $HWNDPARENT 1037
   !insertmacro SetTransparent $HWNDPARENT 1038
   !insertmacro SetTransparent $HWNDPARENT 1028
   !insertmacro SetTransparent $HWNDPARENT 1256
   ; !insertmacro SetTransparent $HWNDPARENT 1045
   !insertmacro SetTransparent $HWNDPARENT 1035
   ; Remove unwanted controls.
   !insertmacro DestroyWindow  $HWNDPARENT 1256
   !insertmacro DestroyWindow  $HWNDPARENT 1028
   ; !insertmacro DestroyWindow  $HWNDPARENT 1039 
   !insertmacro DestroyWindow  $HWNDPARENT 1045     # dimm remove line from bottom
   ; !insertmacro DestroyWindow  $HWNDPARENT 1035
   ; !insertmacro DestroyWindow  $HWNDPARENT 1256

FunctionEnd


Function RefreshParentControls

   !insertmacro RefreshWindow  $HWNDPARENT 1037
   !insertmacro RefreshWindow  $HWNDPARENT 1038

FunctionEnd

Function WelcomePageShow

     # Sets background image
   System::Call `user32::LoadImage(i 0, t "$PLUGINSDIR\res.bmp", i ${IMAGE_BITMAP}, i 0, i 0, i ${LR_CREATEDIBSECTION}|${LR_LOADFROMFILE}) i.s`
   Pop $hBitmap
   ; SendMessage $bitmapWindow ${STM_SETIMAGE} ${IMAGE_BITMAP} $hBitmap
      # Start solution
   SetCtlColors $mui.WelcomePage ${CTRL_COLOUR} transparent
   SetCtlColors $mui.WelcomePage.text ${CTRL_COLOUR} transparent
   SetCtlColors $mui.WelcomePage.title 0x333333 transparent
   !insertmacro DestroyWindow  $HWNDPARENT 1037
   !insertmacro DestroyWindow  $HWNDPARENT 1038
   !insertmacro DestroyWindow  $HWNDPARENT 1036 
   SetCtlColors $0 222425 transparent
   System::Call `user32::DestroyWindow(i $mui.WelcomePage.Image)`
   Call RefreshParentControls

FunctionEnd

   ; BrandingText ""
Free loaded resources.

Function .onGUIEnd

   ; Destroy the bitmap.
   System::Call `gdi32::DeleteObject(i s)` $hBitmap

FunctionEnd

--------------------------------------------------------------------------------------------------
Dummy section
--------------------------------------------------------------------------------------------------

Section "Dummy Section" SectionEnd

CSS

O01lI


O01lI


O01lI


O01lI


O01lI

O01lI

O01lI

O01lI