Rizonetech

Building and Distributing Environment (Rizonesoft SDK)

3 posts in this topic

Because of my day job keeping me busy, I do not get much time for developing software for Rizonesoft. So, I started a new project called the Rizonesoft SDK. I created the Rizonesoft SDK to streamline the developing or updating AutoIt programs.

Rizonesoft SDK Build 1365 Screen

ReBar Framework

I started with creating an application framework, named ReBar Framework. The ReBar Framework use shared functions that makes it easier to update projects. For example; the about dialog can be updated in one place and the change will reflect in each program when compiled. Furthermore; the settings file name is generated from the script name and information like, the program name, company name, description is adopted from the AutoIt directives in the script.

Building and Distribution Environment

From here I created the building environment for performing tasks like; compiling, compressing executables, signing executables and generating documentation for a project. The distribution side of the building environment can; create a distribution, create a portable package, generate an installation executable, sign the generated installation file, distribute the source code to GitHub and create a source code package.

Roadmap

The Rizonesoft SDK is still in its prototype. I am planning many more features. Some of the features we are planning and working on include:

  • The new project wizard is incomplete. At the moment, new projects can only be created manually.
  • I'm busy working on Scriptomatic for AutoIt.
  • Documentation on how to use the Rizonesoft SDK for creating, building and distributing your own programs.

 

Download

Download the Source Code from here or view it on GitHub.

Download the signed binaries from here.

Main Script

Rizonesoft SDK main script file content (Distro.au3)

#NoTrayIcon

#OnAutoItStartRegister "_ReBarStartUp"


#Region AutoIt3Wrapper Directives Dection

#AutoIt3Wrapper_If_Run

    ;===============================================================================================================
    ; AutoIt3 Settings
    ;===============================================================================================================
    #AutoIt3Wrapper_UseX64=Y                                         ;~ (Y/N) Use AutoIt3_x64 or Aut2Exe_x64. Default=N
    #AutoIt3Wrapper_Run_Debug_Mode=Y                                 ;~ (Y/N) Run Script with console debugging. Default=N
    #AutoIt3Wrapper_Run_SciTE_Minimized=Y                            ;~ (Y/N) Minimize SciTE while script is running. Default=N
    #AutoIt3Wrapper_Run_SciTE_OutputPane_Minimized=N                 ;~ (Y/N) Minimize SciTE output pane at run time. Default=N
    ;===============================================================================================================
    ; Tidy Settings
    ;===============================================================================================================
    #AutoIt3Wrapper_Run_Tidy=Y                                       ;~ (Y/N) Run Tidy before compilation. Default=N
    #AutoIt3Wrapper_Tidy_Stop_OnError=N                              ;~ (Y/N) Continue when only Warnings. Default=Y
    ;#Tidy_Parameters=                                              ;~ Tidy Parameters...see SciTE4AutoIt3 Helpfile for options
    ;===============================================================================================================
    ; AU3Check settings
    ;===============================================================================================================
    #AutoIt3Wrapper_Run_AU3Check=Y                                  ;~ (Y/N) Run au3check before compilation. Default=Y
    ;#AutoIt3Wrapper_AU3Check_Parameters=                           ;~ Au3Check parameters...see SciTE4AutoIt3 Helpfile for options
    ;#AutoIt3Wrapper_AU3Check_Stop_OnWarning=                       ;~ (Y/N) Continue/Stop on Warnings.(Default=N)

#Autoit3Wrapper_If_Compile

    #AutoIt3Wrapper_ShowProgress=Y                                  ;~ (Y/N) Show ProgressWindow during Compile. Default=Y
    ;===============================================================================================================
    ; AutoIt3 Settings
    ;===============================================================================================================
    #AutoIt3Wrapper_UseX64=Y                                        ;~ (Y/N) Use AutoIt3_x64 or Aut2Exe_x64. Default=N
    #AutoIt3Wrapper_Version=B                                       ;~ (B/P) Use Beta or Production for AutoIt3 and Aut2Eex. Default is P
    #AutoIt3Wrapper_Run_Debug_Mode=N                                ;~ (Y/N) Run Script with console debugging. Default=N
    ;#AutoIt3Wrapper_Autoit3Dir=                                    ;~ Optionally override the AutoIt3 install directory to use.
    ;#AutoIt3Wrapper_Aut2exe=                                       ;~ Optionally override the Aut2exe.exe to use for this script
    ;#AutoIt3Wrapper_AutoIt3=                                       ;~ Optionally override the Autoit3.exe to use for this script
    ;===============================================================================================================
    ; Aut2Exe Settings
    ;===============================================================================================================
    #AutoIt3Wrapper_Icon=Themes\Icons\Distro.ico                    ;~ Filename of the Ico file to use for the compiled exe
    #AutoIt3Wrapper_OutFile_Type=exe                                ;~ exe=Standalone executable (Default); a3x=Tokenised AutoIt3 code file
    #AutoIt3Wrapper_OutFile=Distro.exe                              ;~ Target exe/a3x filename.
    #AutoIt3Wrapper_OutFile_X64=Distro_X64.exe                      ;~ Target exe filename for X64 compile.
    #AutoIt3Wrapper_Compression=4                                   ;~ Compression parameter 0-4  0=Low 2=normal 4=High. Default=2
    #AutoIt3Wrapper_UseUpx=Y                                        ;~ (Y/N) Compress output program.  Default=Y
    ;#AutoIt3Wrapper_UPX_Parameters=                                ;~ Override the default settings for UPX.
    #AutoIt3Wrapper_Change2CUI=N                                    ;~ (Y/N) Change output program to CUI in stead of GUI. Default=N
    #AutoIt3Wrapper_Compile_both=Y                                  ;~ (Y/N) Compile both X86 and X64 in one run. Default=N
    ;===============================================================================================================
    ; Target Program Resource info
    ;===============================================================================================================
    #AutoIt3Wrapper_Res_Comment=Distro Building Environment             ;~ Comment field
    #AutoIt3Wrapper_Res_Description=Distro Building Environment         ;~ Description field
    #AutoIt3Wrapper_Res_Fileversion=1.0.0.1366
    #AutoIt3Wrapper_Res_FileVersion_AutoIncrement=Y                     ;~ (Y/N/P) AutoIncrement FileVersion. Default=N
    #AutoIt3Wrapper_Res_FileVersion_First_Increment=N                   ;~ (Y/N) AutoIncrement Y=Before; N=After compile. Default=N
    #AutoIt3Wrapper_Res_HiDpi=Y                                         ;~ (Y/N) Compile for high DPI. Default=N
    #AutoIt3Wrapper_Res_ProductVersion=0                                ;~ Product Version
    #AutoIt3Wrapper_Res_Language=2057                                   ;~ Resource Language code . Default 2057=English (United Kingdom)
    #AutoIt3Wrapper_Res_LegalCopyright=© 2016 Rizonesoft               ;~ Copyright field
    #AutoIt3Wrapper_res_requestedExecutionLevel=highestAvailable        ;~ PasInvoker, highestAvailable, requireAdministrator or None (remove the trsutInfo section).  Default is the setting from Aut2Exe (asInvoker)
    #AutoIt3Wrapper_res_Compatibility=Vista,Win7,Win8,Win81             ;~ Vista/Windows7/win7/win8/win81 allowed separated by a comma     (Default=Win81)
    ;#AutoIt3Wrapper_Res_SaveSource=N                                   ;~ (Y/N) Save a copy of the Script_source in the EXE resources. Default=N
    ; If _Res_SaveSource=Y the content of Script_source depends on the _Run_Au3Stripper and #Au3Stripper_parameters directives:
    ;    If _Run_Au3Stripper=Y then
    ;        If #Au3Stripper_parameters=/STRIPONLY then Script_source is stripped script & stripped includes
    ;        If #Au3Stripper_parameters=/STRIPONLYINCLUDES then Script_source is original script & stripped includes
    ;       With any other parameters, the SaveSource directive is ignored as obfuscation is intended to protect the source
    ;   If _Run_Au3Stripper=N or is not set then
    ;       Scriptsource is original script only
    ; AutoIt3Wrapper indicates the SaveSource action taken in the SciTE console during compilation
    ; See SciTE4AutoIt3 Helpfile for more detail on Au3Stripper parameters
    ;===============================================================================================================
    ; Free form resource fields ... max 15
    ;===============================================================================================================
    ; You can use the following variables:
    ;   %AutoItVer% which will be replaced with the version of AutoIt3
    ;   %date% = PC date in short date format
    ;   %longdate% = PC date in long date format
    ;   %time% = PC timeformat
    ;   eg: #AutoIt3Wrapper_Res_Field=AutoIt Version|%AutoItVer%
    ://////=__=
    ://////=__=
    ://////=__=://.=
    ://////=__=
    ; Add extra ICO files to the resources
    ; Use full path of the ico files to be added
    ; ResNumber is a numeric value used to access the icon: TraySetIcon(@ScriptFullPath, ResNumber)
    ; If no ResNumber is specified, the added icons are numbered from 201 up
    ; #AutoIt3Wrapper_Res_Icon_Add=                                 ;~ Filename[,ResNumber[,LanguageCode]] of ICO to be added.
    ; #AutoIt3Wrapper_Res_File_Add=                                 ;~ Filename[,Section [,ResName[,LanguageCode]]] to be added.
    ; Add files to the resources - can be compressed
    ; #AutoIt3Wrapper_Res_Remove=
    ; Remove resources
    #AutoIt3Wrapper_Res_Icon_Add=Themes\Icons\DistroD.ico
    ;===============================================================================================================
    ; Tidy Settings
    ;===============================================================================================================
    #AutoIt3Wrapper_Run_Tidy=N                                      ;~ (Y/N) Run Tidy before compilation. Default=N
    ;#AutoIt3Wrapper_Tidy_Stop_OnError=                             ;~ (Y/N) Continue when only Warnings. Default=Y
    ;#Tidy_Parameters=                                              ;~ Tidy Parameters...see SciTE4AutoIt3 Helpfile for options
    ;===============================================================================================================
    ; Au3Stripper Settings
    ;===============================================================================================================
    #AutoIt3Wrapper_Run_Au3Stripper=N
;~ (Y/N) Run Au3Stripper before compilation. default=N
    ;#Au3Stripper_Parameters=/StripOnly                             ;~ Au3Stripper parameters...see SciTE4AutoIt3 Helpfile for options
    ;#Au3Stripper_Ignore_Variables=
    ;===============================================================================================================
    ; AU3Check settings
    ;===============================================================================================================
    #AutoIt3Wrapper_Run_AU3Check=Y                                  ;~ (Y/N) Run au3check before compilation. Default=Y
    ;#AutoIt3Wrapper_AU3Check_Parameters=                           ;~ Au3Check parameters...see SciTE4AutoIt3 Helpfile for options
    #AutoIt3Wrapper_AU3Check_Stop_OnWarning=Y                       ;~ (Y/N) Continue/Stop on Warnings.(Default=N)
    ;===============================================================================================================
    ; Versioning Settings
    ;===============================================================================================================
    ;#AutoIt3Wrapper_Versioning=V                                   ;~ (Y/N/V) Run Versioning to update the script source. default=N
    ;   V=only run when fileversion is increased by #AutoIt3Wrapper_Res_FileVersion_AutoIncrement.
    ;#AutoIt3Wrapper_Versioning_Parameters=/NoPrompt                ;~ /NoPrompt  : Will skip the Comments prompt
    ;   /Comments  : Text to added in the Comments. It can also contain the below variables.
    ;===============================================================================================================
    ; RUN BEFORE AND AFTER definitions
    ;===============================================================================================================
    ;The following directives can contain: these variables
    ;   %in% , %out%, %outx64%, %icon% which will be replaced by the fullpath\filename.
    ;   %scriptdir% same as @ScriptDir and %scriptfile% = filename without extension.
    ;   %fileversion% is the information from the #AutoIt3Wrapper_Res_Fileversion directive
    ;   %scitedir% will be replaced by the SciTE program directory
    ;   %autoitdir% will be replaced by the AutoIt3 program directory
    ;#AutoIt3Wrapper_Run_Before_Admin=                              ;~ (Y/N) Run subsequent Run_Before statements with #RequireAdmin. Default=N
    ;#AutoIt3Wrapper_Run_After_Admin=                               ;~ (Y/N) Run subsequent Run_After statements with #RequireAdmin. Default=N
    ;#AutoIt3Wrapper_Run_Before=                                    ;~ process to run before compilation - multiple records will be processed in sequence
    ;#AutoIt3Wrapper_Run_After=                                     ;~ process to run after compilation - multiple records will be processed in sequence
    ;===============================================================================================================

#AutoIt3Wrapper_EndIf

#EndRegion AutoIt3Wrapper Directives Dection


Opt("CaretCoordMode", 1) ;~ 1=absolute, 0=relative, 2=client
Opt("ExpandEnvStrings", 1) ;~ 0=don't expand, 1=do expand
Opt("ExpandVarStrings", 1) ;~ 0=don't expand, 1=do expand
Opt("GUICloseOnESC", 1) ;~ 1=ESC  closes, 0=ESC won't close
Opt("GUICoordMode", 1) ;~ 1=absolute, 0=relative, 2=cell
Opt("GUIDataSeparatorChar", "|") ;~ "|" is the default
Opt("GUIOnEventMode", 1) ;~ 0=disabled, 1=OnEvent mode enabled
Opt("GUIResizeMode", 802) ;~ 0=no resizing, <1024 special resizing
Opt("GUIEventOptions", 0) ;~ 0=default, 1=just notification, 2=GUICtrlRead tab index
Opt("MouseClickDelay", 10) ;~ 10 milliseconds
Opt("MouseClickDownDelay", 10) ;~ 10 milliseconds
Opt("MouseClickDragDelay", 250) ;~ 250 milliseconds
Opt("MouseCoordMode", 1) ;~ 1=absolute, 0=relative, 2=client
Opt("MustDeclareVars", 1) ;~ 0=no, 1=require pre-declaration
Opt("PixelCoordMode", 1) ;~ 1=absolute, 0=relative, 2=client
Opt("SendAttachMode", 0) ;~ 0=don't attach, 1=do attach
Opt("SendCapslockMode", 1) ;~ 1=store and restore, 0=don't
Opt("SendKeyDelay", 5) ;~ 5 milliseconds
Opt("SendKeyDownDelay", 1) ;~ 1 millisecond
Opt("TCPTimeout", 100) ;~ 100 milliseconds
Opt("TrayAutoPause", 1) ;~ 0=no pause, 1=Pause
Opt("TrayIconDebug", 1) ;~ 0=no info, 1=debug line info
Opt("TrayIconHide", 1) ;~ 0=show, 1=hide tray icon
Opt("TrayMenuMode", 1) ;~ 0=append, 1=no default menu, 2=no automatic check, 4=menuitemID  not return
Opt("TrayOnEventMode", 1) ;~ 0=disable, 1=enable
Opt("WinDetectHiddenText", 0) ;~ 0=don't detect, 1=do detect
Opt("WinSearchChildren", 1) ;~ 0=no, 1=search children also
Opt("WinTextMatchMode", 1) ;~ 1=complete, 2=quick
Opt("WinTitleMatchMode", 1) ;~ 1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase
Opt("WinWaitDelay", 250) ;~ 250 milliseconds


#include <ListviewConstants.au3>
#include <ListBoxConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <StaticConstants.au3>
#include <StringConstants.au3>
#include <GuiConstantsEx.au3>
#include <EditConstants.au3>
#include <GuiImageList.au3>
#include <GuiListView.au3>
#include <Constants.au3>
#include <Misc.au3>

#include <WinAPITheme.au3>

#include "Includes\ReBar_Declarations.au3"
#include "Includes\ReBar_Functions.au3"
#include "Includes\ReBar_ModernMenu.au3"
#include "Includes\ReBar_Versioning.au3"
#include "Includes\ReBar_Logging.au3"
#include "Includes\ReBar_Splash.au3"
#include "Includes\ReBar_Process.au3"
#include "Includes\ReBar_AutoIt3Script.au3"

#include "UDF\ReBar_Options.au3"

#include "Includes\ReBar_Startup.au3"


;===============================================================================================================
; Declarations
;===============================================================================================================
Global Const $COUNT_BUILD = 4
Global Const $COUNT_DISTRIBUTE = 7
Global Const $LINESPACING = 20
Global Const $SPACE_PRELINE = 22
Global Const $COUNT_PREREQ_COL = 2
Global Const $COUNT_PREREQ_ROW = 5
Global Const $COUNT_PREREQ_LINE = 6
Global Const $DIR_SIGNING = @ScriptDir & "\Signing\"

Global $LIST_DISTROS, $IMG_DISTROS, $COUNT_DISTROS = 0
Global $ICO_GENDOCS, $LST_STATUS, $EDIT_STATUS, $IMG_STATUS
Global $MENU_CREATESLN, $GUI_CREATESLN

Global $ICON_BUILD[$COUNT_BUILD], $CHK_BUILD[$COUNT_BUILD], $BTNHLP_BUILD[$COUNT_BUILD], $BTNGO_BUILD[$COUNT_BUILD]
Global $PRGTOP_BUILD[$COUNT_BUILD], $LINE_BUILD[$COUNT_BUILD], $PROGRESS_BUILD[$COUNT_BUILD]
Global $BTNHLP_BUILD_H[$COUNT_BUILD], $BTNGO_BUILD_H[$COUNT_BUILD]

Global $ICON_DISTRIBUTE[$COUNT_DISTRIBUTE], $CHK_DISTRIBUTE[$COUNT_DISTRIBUTE]
Global $BTNHLP_DISTRIBUTE[$COUNT_DISTRIBUTE], $BTNGO_DISTRIBUTE[$COUNT_DISTRIBUTE]
Global $PRGTOP_DISTRIBUTE[$COUNT_DISTRIBUTE], $LINE_DISTRIBUTE[$COUNT_DISTRIBUTE]
Global $PROGRESS_DISTRIBUTE[$COUNT_DISTRIBUTE], $BTNHLP_DISTRIBUTE_H[$COUNT_DISTRIBUTE]
Global $BTNGO_DISTRIBUTE_H[$COUNT_DISTRIBUTE]

Global $LINE_PREREQ[$COUNT_PREREQ_COL][$COUNT_PREREQ_LINE], $ICO_PRESTATUS[$COUNT_PREREQ_COL][$COUNT_PREREQ_ROW]
Global $LBL_PRENAME[$COUNT_PREREQ_COL][$COUNT_PREREQ_ROW], $LBL_PRESTATUS[$COUNT_PREREQ_COL][$COUNT_PREREQ_ROW]
Global $LBL_PREURL[$COUNT_PREREQ_COL][$COUNT_PREREQ_ROW], $BTN_PROCESS_ALL

Global $TAB_LOGGING
Global $INST_SIZE = 0

Global $AU3_INSTALLED, $AU3_DIR, $AU3_CMD
Global $AUB_INSTALLED, $AUB_DIR, $AUB_CMD
Global $SCT_INSTALLED, $SCT_DIR, $SCT_CMD
Global $AUW_INSTALLED, $AUW_DIR, $AUW_CMD
Global $UPX_INSTALLED, $UPX_DIR, $UPX_CMD
Global $KSN_INSTALLED, $KSN_DIR, $KSN_CMD
Global $7ZP_INSTALLED, $7ZP_DIR, $7ZP_CMD
Global $INN_INSTALLED, $INN_DIR, $INN_CMD

Global $INI_DISTRO = ""
Global $DIR_DISTRO = ""
Global $AU3_DISTRO = ""

Global $INT_BLDPERC[$COUNT_BUILD], $INT_BLDPOS[$COUNT_BUILD]
Global $INT_DISPERC[$COUNT_DISTRIBUTE], $INT_DISPOS[$COUNT_DISTRIBUTE]

Global $COUNT_CHECKED_DISTROS = 0
Global $B_SINGULARITY = False
Global $ICO_PREREFRESH, $ICO_PREREFRESH_H = 1

Global $NSD_NAME, $NSD_PROG_NAME, $NSD_PROG_DESC, $NSD_BTNCREATE
;===============================================================================================================


_SplashStart("Initializing " & $REBAR_PROG_NAME, $REBAR_SPLASH_ENABLE)
_SplashUpdate("Setting Working Directories", 1, $REBAR_SPLASH_ENABLE)
_SetWorkingDirectories()
_SplashUpdate("Initializing Logging Subsystem", 2, $REBAR_SPLASH_ENABLE)
_LoggingInitialize()
_SplashUpdate("Checking Integrity", 3, $REBAR_SPLASH_ENABLE)
_CheckResources($REBAR_RES_FUGUE)
_CheckResources($REBAR_RES_DOORS)
_SplashUpdate("Building Interface", 5, $REBAR_SPLASH_ENABLE)
_StartCoreGUI()


Func _StartCoreGUI()

    Local $mnuFile, $miFileClose
    Local $mnuCreate
    Local $mnuHelp, $miHlpHome, $miHlpSupport
    Local $btnGenDocs

    $REBAR_GUI_CORE = GUICreate($REBAR_ISADMINST & _GUIGetTitle($REBAR_PROG_NAME), $REBAR_FORM_WIDTH, $REBAR_FORM_HEIGHT, -1, -1, -1)
    GUIRegisterMsg($WM_GETMINMAXINFO, "WM_GETMINMAXINFO")
    GUISetFont($REBAR_FONT_SIZE, 400, -1, $REBAR_FONT_NAME, $REBAR_GUI_CORE, $CLEARTYPE_QUALITY)
    If Not @Compiled Then
        GUISetIcon($REBAR_RUN_PROG_ICON_HOVER, 0, $REBAR_GUI_CORE)
    EndIf

    $mnuFile = _GUICtrlCreateODTopMenu("&File", $REBAR_GUI_CORE)
    $mnuCreate = _GUICtrlCreateODTopMenu("&Create", $REBAR_GUI_CORE)
    $mnuHelp = _GUICtrlCreateODTopMenu("&Help", $REBAR_GUI_CORE)

    _GUICtrlCreateODMenuItem("", $mnuFile)
    $miFileClose = _GUICtrlCreateODMenuItem("&Close" & @TAB & "Esc", $mnuFile, $REBAR_RES_FUGUE, 102)
    _GUICtrlCreateODMenuItem("", $mnuFile)
    $MENU_CREATESLN = _GUICtrlCreateODMenuItem("&Create new Solution...", $mnuCreate, $REBAR_RES_FUGUE, 140)
    $REBAR_ABOUT_MENU = _GUICtrlCreateODMenuItem("&About " & $REBAR_PROG_NAME, $mnuHelp, $REBAR_RES_FUGUE, 103)
    $miHlpHome = _GUICtrlCreateODMenuItem($REBAR_COMP_NAME & " &Home", $mnuHelp, $REBAR_RES_FUGUE, 106)
    _GUICtrlCreateODMenuItem("", $mnuHelp)
    $miHlpSupport = _GUICtrlCreateODMenuItem($REBAR_COMP_NAME & " &Support", $mnuHelp, $REBAR_RES_FUGUE, 101)

    _SetMenuSelectBkColor(0xF7E0C9)
    _SetMenuSelectRectColor(0xE4A262)

    GUICtrlSetOnEvent($miFileClose, "_ShutdownProgram")
    GUICtrlSetOnEvent($MENU_CREATESLN, "_CreateNewSolutionDialog")
    GUICtrlSetOnEvent($REBAR_ABOUT_MENU, "_ShowAboutDialog")
    GUICtrlSetOnEvent($miHlpHome, "_OpenHomePageLink")
    GUICtrlSetOnEvent($miHlpSupport, "_OpenSupportLink")

    $REBAR_GUI_ICON = GUICtrlCreateIcon($REBAR_ICON, 201, $REBAR_ICON_LEFT, $REBAR_ICON_TOP, $REBAR_ICON_SIZE, $REBAR_ICON_SIZE)
    GUICtrlSetTip($REBAR_GUI_ICON, "Version " & $REBAR_RUN_VERSION & @CRLF & _
            "Build with AutoIt version " & @AutoItVersion & @CRLF & _
            "Copyright © " & @YEAR & " " & $REBAR_COMP_NAME, _
            "About " & $REBAR_PROG_NAME, $TIP_INFOICON, $TIP_BALLOON)
    GUICtrlSetCursor($REBAR_GUI_ICON, 0)
    GUICtrlCreateLabel("Rizonesoft SDK 1", 85, 15, 300, 100)
    GUICtrlSetFont(-1, 11)

    $LIST_DISTROS = GUICtrlCreateListView("", 10, 90, 450, 200)
    _GUICtrlListView_SetExtendedListViewStyle($LIST_DISTROS, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, _
            $LVS_EX_SUBITEMIMAGES, $LVS_EX_CHECKBOXES, _
            $LVS_EX_DOUBLEBUFFER, $WS_EX_CLIENTEDGE, _
            $LVS_EX_FLATSB, $LVS_EX_INFOTIP))
    _WinAPI_SetWindowTheme(GUICtrlGetHandle($LIST_DISTROS), "Explorer")

    _GUICtrlListView_AddColumn($LIST_DISTROS, " Distros ", 450)
    _GUICtrlListView_AddColumn($LIST_DISTROS, " Script Path ", 100)
    _GUICtrlListView_AddColumn($LIST_DISTROS, " Distro Configuration ", 100)

    $IMG_DISTROS = _GUIImageList_Create(16, 16, 5, 3, 0, 250)
    _GUICtrlListView_SetImageList($LIST_DISTROS, $IMG_DISTROS, 1)

    $BTN_PROCESS_ALL = GUICtrlCreateButton("Process", 270, 295, 190, 40)
    GUICtrlSetFont($BTN_PROCESS_ALL, 11, 400)

    GUICtrlSetOnEvent($BTN_PROCESS_ALL, "_RunBuildOption")

    GUICtrlCreateTab(10, 345, 760, 160)

    GUICtrlCreateTabItem(" Prerequisites ")

    GUICtrlCreateLabel("", 20, 380, 1, 111)
    GUICtrlSetBkColor(-1, 0xD9D9D9)
    GUICtrlCreateLabel("", 330, 380, 1, 111)
    GUICtrlSetBkColor(-1, 0xD9D9D9)
    GUICtrlCreateLabel("", 365, 380, 1, 111)
    GUICtrlSetBkColor(-1, 0xD9D9D9)

    For $iCol = 0 To $COUNT_PREREQ_COL - 1
        For $iLine = 0 To $COUNT_PREREQ_LINE - 1
            $LINE_PREREQ[$iCol][$iLine] = GUICtrlCreateLabel("", 20 + ($iCol * 360), 380 + ($iLine * $SPACE_PRELINE), 346, 1)
            GUICtrlSetBkColor($LINE_PREREQ[$iCol][$iLine], 0xD9D9D9)
        Next
        For $iRow = 0 To $COUNT_PREREQ_ROW - 1
            $ICO_PRESTATUS[$iCol][$iRow] = GUICtrlCreateIcon($REBAR_RES_FUGUE, 122, 25 + ($iCol * 360), 383 + ($iRow * $SPACE_PRELINE), 16, 16)
            $LBL_PRENAME[$iCol][$iRow] = GUICtrlCreateLabel("Prerequisites", 50 + ($iCol * 360), 384 + ($iRow * $SPACE_PRELINE), 200, 16)
            $LBL_PRESTATUS[$iCol][$iRow] = GUICtrlCreateLabel("Not Installed", 250 + ($iCol * 360), 384 + ($iRow * $SPACE_PRELINE), 80, 16)
            GUICtrlSetFont($LBL_PRESTATUS[$iCol][$iRow], 8.5, -1, 4) ;Underlined
            GUICtrlSetColor($LBL_PRESTATUS[$iCol][$iRow], 0x0000FF)
            GUICtrlSetCursor($LBL_PRESTATUS[$iCol][$iRow], 0)
            $LBL_PREURL[$iCol][$iRow] = GUICtrlCreateIcon($REBAR_RES_FUGUE, 126, 340 + ($iCol * 360), 383 + ($iRow * $SPACE_PRELINE), 16, 16)
        Next
    Next

    GUICtrlCreateLabel("", 380, 380, 1, 111)
    GUICtrlSetBkColor(-1, 0xD9D9D9)
    GUICtrlCreateLabel("", 690, 380, 1, 111)
    GUICtrlSetBkColor(-1, 0xD9D9D9)
    GUICtrlCreateLabel("", 725, 380, 1, 111)
    GUICtrlSetBkColor(-1, 0xD9D9D9)

    $ICO_PREREFRESH = GUICtrlCreateIcon($REBAR_RES_FUGUE, 128, 738, 383, 16, 16)
    GUICtrlSetCursor($ICO_PREREFRESH, 0)
    GUICtrlSetTip($ICO_PREREFRESH, "Rescan your Computer for installed Prerequisites.", " Prerequisites", $TIP_INFOICON, $TIP_BALLOON)

    $TAB_LOGGING = GUICtrlCreateTabItem(" Logging ")

    $LST_STATUS = GUICtrlCreateListView("", 20, 380, 720, 111, BitOR($LVS_REPORT, $LVS_NOCOLUMNHEADER))
    _GUICtrlListView_SetExtendedListViewStyle($LST_STATUS, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_DOUBLEBUFFER, _
            $LVS_EX_SUBITEMIMAGES, $LVS_EX_INFOTIP, _
            $WS_EX_CLIENTEDGE))
    _GUICtrlListView_AddColumn($LST_STATUS, "", 680)
    _WinAPI_SetWindowTheme(GUICtrlGetHandle($LST_STATUS), "Explorer")

    $IMG_STATUS = _GUIImageList_Create(16, 16, 5, 1, 8, 8)
    _GUIImageList_AddIcon($IMG_STATUS, $REBAR_RES_FUGUE, -103)
    _GUIImageList_AddIcon($IMG_STATUS, $REBAR_RES_FUGUE, -130)
    _GUIImageList_AddIcon($IMG_STATUS, $REBAR_RES_FUGUE, -122)
    _GUIImageList_AddIcon($IMG_STATUS, $REBAR_RES_FUGUE, -134)
    _GUIImageList_AddIcon($IMG_STATUS, $REBAR_RES_FUGUE, -133)
    _GUIImageList_AddIcon($IMG_STATUS, $REBAR_RES_FUGUE, -135)
    _GUIImageList_AddIcon($IMG_STATUS, $REBAR_RES_FUGUE, -136)
    _GUIImageList_AddIcon($IMG_STATUS, $REBAR_RES_FUGUE, -138)
    _GUIImageList_AddIcon($IMG_STATUS, $REBAR_RES_FUGUE, -999)
    _GUICtrlListView_SetImageList($LST_STATUS, $IMG_STATUS, 1)

    GUICtrlSetFont($LST_STATUS, 9, -1, -1, "Courier New")
    GUICtrlSetColor($LST_STATUS, 0x222222)

    GUICtrlCreateTabItem("") ; end tabitem definition

    GUICtrlCreateGroup("Build", 470, 10, 300, 120)
    GUICtrlSetFont(-1, 10, 700, 2)

    For $iBuild = 0 To $COUNT_BUILD - 1
        $ICON_BUILD[$iBuild] = GUICtrlCreateIcon($REBAR_RES_FUGUE, 109 + $iBuild, 480, 38 + ($iBuild * $LINESPACING), 16, 16)
        $CHK_BUILD[$iBuild] = GUICtrlCreateCheckbox(" Building...", 503, 38 + ($iBuild * $LINESPACING), 215, 16)
        $BTNHLP_BUILD[$iBuild] = GUICtrlCreateIcon($REBAR_RES_FUGUE, 104, 718, 38 + ($iBuild * $LINESPACING), 16, 16)
        GUICtrlSetCursor($BTNHLP_BUILD[$iBuild], 0)
        $BTNGO_BUILD[$iBuild] = GUICtrlCreateIcon($REBAR_RES_FUGUE, 108, 738, 38 + ($iBuild * $LINESPACING), 16, 16)
        GUICtrlSetCursor($BTNGO_BUILD[$iBuild], 0)
        $PRGTOP_BUILD[$iBuild] = 55 + ($iBuild * $LINESPACING)
        $LINE_BUILD[$iBuild] = GUICtrlCreateLabel("", 503, $PRGTOP_BUILD[$iBuild], 215, 1)
        GUICtrlSetBkColor($LINE_BUILD[$iBuild], 0xD9D9D9)
        $PROGRESS_BUILD[$iBuild] = GUICtrlCreateLabel("", 503, $PRGTOP_BUILD[$iBuild], 1, 1)
        GUICtrlSetBkColor($PROGRESS_BUILD[$iBuild], 0x3399FF)
        GUICtrlSetState($PROGRESS_BUILD[$iBuild], $GUI_HIDE)
;~ GUICtrlSetState($CHK_BUILD[$iBuild], $GUI_CHECKED)

        GUICtrlSetOnEvent($BTNGO_BUILD[$iBuild], "_RunBuildOption")

    Next

    GUICtrlSetData($CHK_BUILD[0], " Build Distros")
    GUICtrlSetData($CHK_BUILD[1], " Compress Program Executables")
    GUICtrlSetData($CHK_BUILD[2], " Sign Program Executables")
    GUICtrlSetData($CHK_BUILD[3], " Generate Documentation")

    GUICtrlCreateGroup("", -99, -99, 1, 1) ;close group

    GUICtrlCreateGroup("Distribution", 470, 140, 300, 200)
    GUICtrlSetFont(-1, 10, 700, 2)

    For $iDis = 0 To $COUNT_DISTRIBUTE - 1
        $ICON_DISTRIBUTE[$iDis] = GUICtrlCreateIcon($REBAR_RES_FUGUE, 114 + $iDis, 480, 168 + ($iDis * $LINESPACING), 16, 16)
        $CHK_DISTRIBUTE[$iDis] = GUICtrlCreateCheckbox(" Building...", 503, 168 + ($iDis * $LINESPACING), 215, 16)
        $BTNHLP_DISTRIBUTE[$iDis] = GUICtrlCreateIcon($REBAR_RES_FUGUE, 104, 718, 168 + ($iDis * $LINESPACING), 16, 16)
        GUICtrlSetCursor($BTNHLP_DISTRIBUTE[$iDis], 0)
        $BTNGO_DISTRIBUTE[$iDis] = GUICtrlCreateIcon($REBAR_RES_FUGUE, 108, 738, 168 + ($iDis * $LINESPACING), 16, 16)
        GUICtrlSetCursor($BTNGO_DISTRIBUTE[$iDis], 0)
        $PRGTOP_DISTRIBUTE[$iDis] = 185 + ($iDis * $LINESPACING)
        $LINE_DISTRIBUTE[$iDis] = GUICtrlCreateLabel("", 503, $PRGTOP_DISTRIBUTE[$iDis], 215, 1)
        GUICtrlSetBkColor($LINE_DISTRIBUTE[$iDis], 0xD9D9D9)
        $PROGRESS_DISTRIBUTE[$iDis] = GUICtrlCreateLabel("", 503, $PRGTOP_DISTRIBUTE[$iDis], 0, 1)
        GUICtrlSetBkColor($PROGRESS_DIST

For some reason Firefox keep on crashing when trying to paste the code. Will figure it out soon.


Rizonesoft Open Source Home Scripts: Complete Internet Repair | Development: Rizonesoft SDK

Share this post


Link to post
Share on other sites



Hello sir.  Amazing start.  I look forward to this projects further development.  Just a couple of things I noticed:

1. the product does not seem to detect 64-bit installations of 7-zip on 64-bit systems (C:\program files\7zip)

2. "Prerequisites" doesn't really tell me what I am missing that is needed to use the software, and the hyperlinks don't seem to do anything, much less lead to a website with aforementioned prerequisite files.

I saw your comment about the help file and look forward to seeing it when it is available.

2016-09-08 13_46_30-Administrator ~ Distro Building Environment 1 _ Build 1365 _ 64-Bit.png

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