Sign in to follow this  
Followers 0
LiquidNitrogen

Installer Template (Updated 2-18-12)

16 posts in this topic

#1 ·  Posted (edited)

Quick Installer Template. In Rar Archive is the Side image for the Installer and the Script.

Updates:

(2-10-12)

- Moved Progress Bar From Window to GUI

- Added Title Headers for "Terms and Conditions" and the Installation Step

- Now Displays The Directory of Installation While Installing

- Added Check Boxes at End of Installation for "Run Application" And "Create Desktop Shortcut".

(2-11-12)

- Added Cancel Button to Cancel Installation During the Process of Installation.

(2-18-12)

- Changed Progress Bar to GDIpProgress Bar Thanks to ProgAndy For his UDF.

New (2-18-12): Installer Template.rar

This Update Requires you to Have the GDIpProgress and GDIpProgress_Ex Include Files. You Can Get them From Here:

Edited by ReaperX

Formerly ReaperX

Share this post


Link to post
Share on other sites



Very nice, thanks for sharing!

Share this post


Link to post
Share on other sites

As it happens, I am actually working on an installer too. Not so much the installation side of it though, but it would definately be worth taking a look at this to see how other people are going about it too. Thanks for sharing this.

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

thank you

Edited by mesale0077

Share this post


Link to post
Share on other sites

Thank you. This will come in handy.

Share this post


Link to post
Share on other sites

Your Welcome Guys. :)


Formerly ReaperX

Share this post


Link to post
Share on other sites

As it happens, I am actually working on an installer too. Not so much the installation side of it though, but it would definately be worth taking a look at this to see how other people are going about it too. Thanks for sharing this.

I Might Work on this Some More to Improve it on the Installation Side.


Formerly ReaperX

Share this post


Link to post
Share on other sites

thank you

Thanks for sharing this.

this try

Thats Pretty Cool. Ill Try that and Move from a Progress Window to a Progress Bar Control in the GUI to make it Look more like a Modern Installer. :)

Formerly ReaperX

Share this post


Link to post
Share on other sites

Really Nice work! :)


Thank you,Regards,[font="Garamond"][size="4"]K.Syed Ibrahim.[/size][/font]

Share this post


Link to post
Share on other sites

Really Nice work! :)

Thanks. Just Updated Installer!

Formerly ReaperX

Share this post


Link to post
Share on other sites

I Might Work on this Some More to Improve it on the Installation Side.

Thanks. But I don't plan to release it without it being fully functional and customizable. I think that what will happen, is I will write a program to encode the contents of the selected directory (where the installed files will be), present the user with a window to allow for registry settings, and then compile.

Share this post


Link to post
Share on other sites

#13 ·  Posted (edited)

Thanks. But I don't plan to release it without it being fully functional and customizable. I think that what will happen, is I will write a program to encode the contents of the selected directory (where the installed files will be), present the user with a window to allow for registry settings, and then compile.

Sounds Good. :)

Edited by ReaperX

Formerly ReaperX

Share this post


Link to post
Share on other sites

very nice

thanks for sharing

Share this post


Link to post
Share on other sites

#15 ·  Posted (edited)

hi

maybe

$Progress1 = GUICtrlCreateProgress(120, 200, 257, 25,$WS_EX_WINDOWEDGE)
  
    DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle(-1), "wstr", 0, "wstr", 0)
    GUICtrlSetStyle($Progress1, BitOr($GUI_SS_DEFAULT_PROGRESS, $PBS_SMOOTH))
  
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xFFFFFF)

or

$Progress1 = GUICtrlCreateProgress(120, 200, 257, 25)
  DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($Progress1), "wstr", 0, "wstr", 0)
   
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xFFFFFF)
Edited by mesale0077

Share this post


Link to post
Share on other sites

#16 ·  Posted (edited)

Nice Modifications! i tried to cancel once i click on the Install button. but it were not able to stop the progress bar action and it skips! Please have a look!

To Fix this i just modified the _Installfiles() function as below. Please appologize for modified your code without your knowledge!

Func InstallFiles()

AutoItSetOption("GUIOnEventMode", 1)
Global $InstallDir
GUICreate("Installer Template", 400, 340)
GUICtrlCreatePic("image.jpg", 10, 10, 100, 320)
GUICtrlCreateLabel("Installation in Progress", 130, 50, 200)
GUICtrlSetFont(-1, 12)
$Progress = _ProgressCreate(130, 120, 250, 30)
_ProgressSetFont($Progress, "", 0, 2)
_ProgressSetColors($Progress, -1, -1, 0xDCDCDC, 0xDCDCDC)
GUICtrlCreateLabel("Directory:", 130, 160)
GUICtrlCreateInput(GUICtrlRead($InstallDir), 180, 160, 200, 18, BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY))
$CancelButton = GUICtrlCreateButton("Cancel", 320, 313, 80)
_ProgressSetText($Progress, "Loading...")

GUISetState()

Sleep(1200)

For $i = 0 To 100 Step 10
If GUICtrlRead($CancelButton) <> "Cancel" Then ;==============> This condition will do the trick

_ProgressSet($Progress, $i)
_ProgressSetText($Progress, "Installing... " & $i & "%")
If $i > 40 Then
_ProgressSetText($Progress, "Cleaning Up... " & $i & "%")
ControlDisable("", "", $CancelButton)
Else
_ProgressSetText($Progress, "Installing... " & $i & "%")
EndIf
If $i = 100 Then _ProgressSetText($Progress, "Installation Complete!")
Sleep(700)
GUICtrlSetOnEvent($CancelButton, "_CancelInstallation")
Else ;============================> else part for the cancelation
_CancelInstallation()
EndIf
Next
Sleep(1000)
AutoItSetOption("GUIOnEventMode", 0)
GUIDelete()
InstallationComplete()


EndFunc   ;==>InstallFiles
Edited by Syed23

Thank you,Regards,[font="Garamond"][size="4"]K.Syed Ibrahim.[/size][/font]

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

  • Similar Content

    • fatpig
      By fatpig
      Dear AutoIT Community.
      I am currently working on a program that will display lots of images in a scroll down GUI.
      I create the GUI based on the number of images, which works fine.
      But all images I place using GuiCtrlCreatePic above a threshold of around 32000 pixels (cant say exactly) are placed at negative locations and finally will reach 0 again
      and will then populate on top of the images placed there before.
      For $i = 1 To $Images[0] ; Get picture dimensions $hImage = _GDIPlus_ImageLoadFromFile($ImgRep & $Images[$i]) $iX = _GDIPlus_ImageGetWidth($hImage) $iY = _GDIPlus_ImageGetHeight($hImage) _GDIPlus_ImageDispose($hImage) ; Resize & place images in GUI $Pic[$i] = GUICtrlCreatePic($ImgRep & $Images[$i], $Spacer, Round($yPos, 0), $MaxImgWidth, $MaxImgWidth * ($iY / $iX)) $yPos = $yPos + $MaxImgWidth * ($iY / $iX) + $Spacer $log = $log & "|" & $yPos $currentlut = $Images[1] Next I have found a limit at 32767 pixels for some GUI elements when googling around.
      Can someone tell me how to circumvent that?
      thanks!
      cheers
      Felix
    • Shirdish_chakravarthi
      By Shirdish_chakravarthi
      Hello Guys this is my gui and i need the numeric value typed in the highlighted  inputbox. if this value is greater than 1 i need to perform some operations
      \
       
      Here is the summary about that field which i got from wininfo tool

      i tried writing the code as shown below.. but the msgbox is popping up empty value..when the same code is pasted under some button action i am able to access the value present in the field..but when placed alone as written in the attached script i am unable to fetch it... 

      here i am using the valu present in the field

      can you guys tell me what's wrong??? or how can i get that value?
       
      My_GUI.au3

    • Neonovaz
      By Neonovaz
      Hello
       
      Is there anyway to store word documents in Autoit GUI? For example I have a instruction sheet that I want to bundle up with the exe.

      So a user simply clicks the icon and the stored document will launch  (Something like how you can add objects like excel sheets in word documents )

      (I Know we can launch word files from script directory)

       
    • hemichallenger
      By hemichallenger
      Not sure if this is possible or if someone has already tackled this. Is it possible to embed PowerShell into a GUI? Autoit is great for quick function but sometime I need to run a command thru PowerShell. It be great to have PowerShell console embedded into the gui.
    • 0Ethan0
      By 0Ethan0
      Ahoy Autoit Community!
      After many trials and errors I am unable to solve a problem I am facing and would appreciate any kind of input or better yet a solution 
      The Premise: An embeded slideshow viewer that runs after double-clicking an item in a ListView (each item will generate a different slideshow images).
      The Setup: GUI with a ListView Control and a simple exit button.
      The Issue: Once double clicked the slide plays however the GUI "locks"/non responsive until the slide is over. Same thing if I click on the "Test" button.
      The Culprit: I believe since it's in the images loop it can't accept any other commands until that loop is over.
      The Wish: I want to be able to use the GUI functions (selecting other items, clicking on button etc.) while the slideshow plays.
      The Code (stripped and simplified as much as I could):
      #include <GuiListView.au3> #include <File.au3> #include <GDIPlus.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Opt("GUIOnEventMode", 1) HotKeySet("{Esc}", "_Exit") Global $c=0 Global $ssGDI[3], $ssGraphic[2], $ssImage Global Const $bg_color = "000000" Global Const $ssW = 480, $ssH = 320 Global $aFiles = _FileListToArrayRec("d:\testStage\", "*.jpg;*.png;*.bmp;*.gif;*.JPG;*.PNG;*.BMP;*.GIF", $FLTAR_FILES, $FLTAR_NORECUR ,$FLTAR_SORT ,$FLTAR_FULLPATH ) $guiW = 1200 $guiH = 726 $mainWindow = GUICreate("Slideshow Viewer", $guiW, $guiH, -1, -1, $WS_POPUP) $Button1 = GUICtrlCreateButton("Exit", 0, 0, 50, 50) GUICtrlSetOnEvent($Button1, "_Exit") $Button1 = GUICtrlCreateButton("Test", 60, 0, 50, 50) GUICtrlSetOnEvent($Button1, "Test") Global $ListView = GUICtrlCreateListView("Entry Name|Category", 5, 75, 195, 280) _GUICtrlListView_SetColumnWidth ($ListView, 0, 100) _GUICtrlListView_SetColumnWidth ($ListView, 1, 100) GUICtrlSendMsg($ListView, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES) GUICtrlSendMsg($ListView, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT) GUICtrlCreateListViewItem("Name 1|Category 1", $ListView) GUICtrlCreateListViewItem("Name 2|Category 2", $ListView) screenshotWidgetInit($ssW,$ssH, 690, 100) GUISetState(@SW_SHOW, $mainWindow) GUIRegisterMsg($WM_NOTIFY, "WM_Notify_Events") While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE _Exit() EndSwitch WEnd Func Test() For $k = 1 To UBound($aFiles) - 1 screenshotWidgetTransition($aFiles[$k]) Next EndFunc Func ListView_Click() ConsoleWrite("Left Click") EndFunc Func ListView_DoubleClick() ConsoleWrite("Double Left Click") Test() EndFunc Func WM_Notify_Events($hWndGUI, $MsgID, $wParam, $lParam) #forceref $hWndGUI, $MsgID, $wParam Local $tagNMHDR, $event, $hwndFrom, $code $tagNMHDR = DllStructCreate("int;int;int", $lParam) If @error Then Return $event = DllStructGetData($tagNMHDR, 3) Select Case $wParam = $ListView Select Case $event = $NM_CLICK ListView_Click () Case $event = $NM_DBLCLK ListView_DoubleClick () EndSelect EndSelect Return $GUI_RUNDEFMSG EndFunc Func screenshotWidgetTransition($image, $delay = 0, $speed = 1, $sleep = 2000) Local $a, $d = $c, $iX, $iY $ssImage = _GDIPlus_ImageLoadFromFile($image) $iX = _GDIPlus_ImageGetWidth($ssImage) $iY = _GDIPlus_ImageGetHeight($ssImage) $FDesktop=$ssH/$ssW $Fact =1 If $iX > $ssW And $FDesktop > ($iY/$iX) Then $Fact=$ssW/$iX ElseIf $iY > $ssH Then $Fact=$ssH/$iY EndIf $H1 = Round(($Fact * $iY),0) $W1 = Round(($Fact * $iX),0) _GDIPlus_GraphicsDrawImageRect($ssGraphic[$d], $ssImage,($ssW - $W1)/2, ($ssH - $H1) / 2,$W1,$H1) WinSetTrans($ssGDI[$d], "", 0) WinSetOnTop($ssGDI[$d], "", 1) For $a = 0 To 254 Step $speed WinSetTrans($ssGDI[$d], "", $a) Sleep($delay) Next WinSetTrans($ssGDI[$d], "", 254) WinSetOnTop($ssGDI[Not ($d)], "", 0) WinSetTrans($ssGDI[Not ($d)], "", 0) _GDIPlus_GraphicsClear($ssGraphic[Not ($d)]) $c = 1 - $d _GDIPlus_ImageDispose ($ssImage) ; very important to realease the pics Sleep($sleep) EndFunc ;==>screenshotWidgetTransition Func screenshotWidgetInit($ssW,$ssH,$ssX,$ssY) $ssGDI[2] = GUICreate("", $ssW, $ssH, $ssX, $ssY, $WS_POPUP, $WS_EX_MDICHILD, $mainWindow) $ssGDI[0] = GUICreate("", $ssW, $ssH, 3, 3, $WS_POPUP, $WS_EX_MDICHILD, $ssGDI[2]) $ssGDI[1] = GUICreate("", $ssW, $ssH, 3, 3, $WS_POPUP, $WS_EX_MDICHILD, $ssGDI[2]) ; GUISetBkColor("0x" & $bg_color, $ssGDI[2]) GUISetState(@SW_SHOW, $ssGDI[2]) GUISetState(@SW_SHOW, $ssGDI[0]) GUISetState(@SW_SHOW, $ssGDI[1]) WinSetTrans($ssGDI[0], "", 0) WinSetTrans($ssGDI[1], "", 0) _GDIPlus_Startup() $ssGraphic[0] = _GDIPlus_GraphicsCreateFromHWND($ssGDI[0]) $ssGraphic[1] = _GDIPlus_GraphicsCreateFromHWND($ssGDI[1]) _GDIPlus_GraphicsClear($ssGraphic[0], "0xFF" & $bg_color) _GDIPlus_GraphicsClear($ssGraphic[1], "0xFF" & $bg_color) EndFunc ;==>screenshotWidgetInit Func _Exit() _GDIPlus_ImageDispose($ssImage) _GDIPlus_GraphicsDispose($ssGraphic[0]) _GDIPlus_GraphicsDispose($ssGraphic[1]) GUIDelete($ssGDI[0]) GUIDelete($ssGDI[1]) GUIDelete($ssGDI[2]) _GDIPlus_Shutdown() Exit EndFunc ;==>_Exit I hope someone can shed light on this; perhaps a different approach is needed?
      Thank you in advance!
      P.S.
      The script is patched from different scripts of different users in the forum - thank you again users!