Groumphy Posted July 21, 2005 Share Posted July 21, 2005 (edited) Herewith the AutoIt file in French language (code Alpha). Some bugs: - Remote loading of the version beta defect (always 1Ko !! Same on the original version !!) Change: - Color for remote loading - Note of version in public release - Tooltips - Design To Do : Change the _Start function with the _Start function of SvenP Originale message : Edit : 21/07/2005 08.00 Edit : 21/07/2005 09.00 Edit : 22/07/2005 21.30 Edited July 22, 2005 by Groumphy ----------------------GroumphyMore information about me [Fr] Link to comment Share on other sites More sharing options...
strik3r0475 Posted March 28, 2006 Share Posted March 28, 2006 I just edited it to show the currently installed Beta version along with the current production version....AutoUpdateIt.au3 Fight Spam! Click Here! Link to comment Share on other sites More sharing options...
jpm Posted March 28, 2006 Share Posted March 28, 2006 I just edited it to show the currently installed Beta version along with the current production version....Nice job could you remve the blue color if already installed.I will update the beta delivery with it.Thanks Link to comment Share on other sites More sharing options...
strik3r0475 Posted March 28, 2006 Share Posted March 28, 2006 (edited) Nice job could you remve the blue color if already installed.I will update the beta delivery with it.ThanksThe blue color?*Edit*Now I see..... I have had questions about the blue color and didn't have a clue whatthey were talking about........On my puter (XP Home SP2) GUICtrlCreateGroup the text always shows up blue to me.I changed my theme to Windows Classic and now only the "Latest Beta *New*" showsas blue. This is set on line (of my editied version above) 288: GUICtrlSetColor($gr_Mn_Beta, 0x0000ff)You could just comment all those out, but I assume you would like it to be blue if there is a new version that you don't have installed and black if you have it installed. I will look a little closer and see if I can come up with something.*Edit #2* Got it (I think....)It was comparing the new beta version with the currently installed production version, so it was always showing Latest Beta *New* (Beta verison number is always higher than production version)AutoUpdateIt.au3 Edited March 28, 2006 by strik3r0475 Fight Spam! Click Here! Link to comment Share on other sites More sharing options...
herewasplato Posted March 28, 2006 Share Posted March 28, 2006 Thanks... I tested it with 115 and let it put 116 back on. Blue works as described... (for me). [size="1"][font="Arial"].[u].[/u][/font][/size] Link to comment Share on other sites More sharing options...
jpm Posted March 29, 2006 Share Posted March 29, 2006 The blue color?*Edit*Now I see..... I have had questions about the blue color and didn't have a clue whatthey were talking about........On my puter (XP Home SP2) GUICtrlCreateGroup the text always shows up blue to me.I changed my theme to Windows Classic and now only the "Latest Beta *New*" showsas blue. This is set on line (of my editied version above) 288: GUICtrlSetColor($gr_Mn_Beta, 0x0000ff)You could just comment all those out, but I assume you would like it to be blue if there is a new version that you don't have installed and black if you have it installed. I will look a little closer and see if I can come up with something.*Edit #2* Got it (I think....)It was comparing the new beta version with the currently installed production version, so it was always showing Latest Beta *New* (Beta verison number is always higher than production version)YES you got it I will put this version in 3.1.1.117Thanks a lot Link to comment Share on other sites More sharing options...
amanda089 Posted August 31, 2006 Share Posted August 31, 2006 (edited) I just finished writing an updater in VB .NET as part of me learning how to write VB .NET applications. I figure someone would want to take a look at it, so I am posting it. The zip file contains the binary, readme, and a src zip. If you want to compile the source yourself, I wrote it in VB .NET 2005 Beta, not sure if earlier versions of VB will compile it. Scan it to death if you want to do that as well, I only have avast available on my pc. EDIT: Removed Attachement Edited September 2, 2006 by amanda089 Link to comment Share on other sites More sharing options...
erebus Posted May 19, 2007 Share Posted May 19, 2007 Hi, The program gives errors if AutoIT is NOT already installed. Something about not defined variables if I remember correctly. Link to comment Share on other sites More sharing options...
erebus Posted July 28, 2007 Share Posted July 28, 2007 (edited) Ok, here is an updated version if you find it useful... ; History: ; - 1.40 - Fixed a bug where the updater crashed if AU3 was not already installed (by erebus) ; - Fixed some display bugs, occured if AU3 was not already installed (by erebus) ; - Re-added the installation paths on the GUI; tiny but useful (by erebus) ; - Added the /noproxy command line switch to allow direct internet access (by erebus) ; - Added a menu option to disable/enable the use of IE's proxy (by erebus) Tell me what you think. expandcollapse popup#NoTrayIcon ; ======================================================================= ; AutoUpdateIt ; Original by Rob Saunders ; Modifications by JPM/strik3r0475/erebus ; ; Command Line Options: ; - AutoUpdateIt.au3 [/release | /beta | /prebeta] [/silent] [/noproxy] ; - /release Download latest release ; - /beta Download latest beta ; - /prebeta Download latest prebeta ; - /silent Silently auto-install (resets all settings) ; - /noproxy Use direct internet access (no IE proxy) ; ; History: ; - 1.40 - Fixed a bug where the updater crashed if AU3 was not already installed (by erebus) ; - Fixed some display bugs, occured if AU3 was not already installed (by erebus) ; - Re-added the installation paths on the GUI; tiny but useful (by erebus) ; - Added the /noproxy command line switch to allow direct internet access (by erebus) ; - Added a menu option to disable/enable the use of IE's proxy (by erebus) ; - 1.37 - Change Alpha to Pre-Beta (by JPM) ; - 1.36 - Display current Beta (by strik3r0475) ; - 1.35 - Fixed some display bugs ; - 1.34 - Display Alpha release if available ; - Command line parameters added /alpha to check for latest alpha ; - 1.33 - Added Retry/Cancel msgbox when cannot connect to receive update file ; - Added Progress bar for non-WinXP users ; - 1.32 - Changed _CompareVersions again (integer comparison now) ; - 1.31 - Rewrote _ClipPath again ; - 1.30 - Rewrote a few UDFs (_CompareVersions, _ClipPath) ; - Underscored all UDF names ; - Removed a misplaced 'Then' screwing up command line options ; - 1.21 - Stupid bug fixed (ignored version check for /beta command) ; - CompareVersions function works properly now (was seeing 3.0.103.173 as newer than 3.1.0.1) ; - 1.20 - Command line parameters added ; - /release to check for latest public release ; - /beta to check for latest beta ; - /silent to install silently (you will lose your compiler and file settings) ; - 1.11 - Starts the download when you press one of the download ; buttons, resulting in pre-downloading while you choose ; where to save the file ; - Default name for Beta download includes full version string ; - Deletes "au3_update.dat" from temp files after loading data ; - 1.10 - Displays release date ; - Changed layout of buttons / groups ; - Slightly modified error message when server inaccessible ; - 1.00 - "Release" / given a version number ; ; Forum Threads: ; - http://www.autoitscript.com/forum/index.php?showtopic=7547&view=getnewpost ; - http://www.autoitscript.com/forum/index.php?showtopic=12099&view=getnewpost ; ; ======================================================================= #Include <GUIConstants.au3> ; ======================================== ; Predefine variables ; ======================================== Global Const $s_Title = 'AutoUpdateIt' Global Const $s_Version = '1.40' Global Const $s_DatFile = 'http://www.autoitscript.com/autoit3/files/beta/update.dat' Global Const $b_Download_UpdateDat = 1 Global Const $s_DatFile_Local = @TempDir & '\au3_update.dat' Global Const $s_Au3UpReg = 'HKCU\Software\AutoIt v3\AutoUpdateIt' Global $i_DownSize, $s_DownPath, $s_DownTemp, $s_DownFolder Global $i_DatFileLoaded, $i_ValidAu3Path, $i_DnInitiated Global $s_AutoUpdate, $i_SilentInstall Global $s_CurrDate Dim $s_ReleaseVer, $s_ReleaseFile, $i_ReleaseSize, $i_ReleaseDate, $s_ReleasePage Dim $s_LatestBetaVer, $s_BetaFile, $i_BetaSize, $i_BetaDate, $s_BetaPage, $s_CurrBetaVer, $s_CurrBetaDate Dim $s_PreBetaVer, $s_PreBetaFile, $i_PreBetaSize, $i_PreBetaDate, $s_PreBetaPage ; ======================================== ; Read registry settings ; ======================================== Global $s_DefDownDir = RegRead($s_Au3UpReg, 'DownloadDir') If @error Then $s_DefDownDir = @DesktopDir EndIf Global $s_Au3Path = RegRead('HKLM\Software\AutoIt v3\AutoIt', 'InstallDir') If Not @error And FileExists($s_Au3Path & '\AutoIt3.exe') Then $s_CurrVer = FileGetVersion($s_Au3Path & "\AutoIt3.exe") $s_CurrDate = _FriendlyDate(FileGetTime($s_Au3Path & "\AutoIt3.exe", 0, 1)) Else $s_Au3Path = 'Installation not found' $s_CurrVer = 'Unavailable' $s_CurrDate = 'Unavailable' EndIf Global $s_BetaPath = RegRead('HKLM\Software\AutoIt v3\AutoIt', 'betaInstallDir') If Not @error And FileExists($s_BetaPath & '\AutoIt3.exe') Then $s_CurrBetaVer = FileGetVersion($s_BetaPath & "\AutoIt3.exe") $s_CurrBetaDate = _FriendlyDate(FileGetTime($s_BetaPath & "\AutoIt3.exe", 0, 1)) Else $s_BetaPath = 'Installation not found' $s_CurrBetaVer = 'Unavailable' $s_CurrBetaDate = 'Unavailable' EndIf ; ======================================== ; Check for command line parameters ; ======================================== If _StringInArray($CmdLine, '/noproxy') Then HttpSetProxy(1) If _StringInArray($CmdLine, '/release') Or _StringInArray($CmdLine, '/beta') Or _StringInArray($CmdLine, '/prebeta') Then Opt('TrayIconHide', 0) _Status('Checking for updates') InetGet($s_DatFile, $s_DatFile_Local, 1) If @InetGetBytesRead = -1 Then _Status('Could not connect to site', 'Please check your connection and try again') Sleep(4000) Exit EndIf _LoadUpdateData() If _StringInArray($CmdLine, '/release') And _CompareVersions($s_ReleaseVer, $s_CurrVer) Then $s_AutoUpdate = $s_ReleaseFile $s_DownTemp = @TempDir & '\autoit-v3-setup.exe' $i_DownSize = $i_ReleaseSize ElseIf _StringInArray($CmdLine, '/beta') And _CompareVersions($s_LatestBetaVer, $s_CurrVer) Then $s_AutoUpdate = $s_BetaFile $s_DownTemp = @TempDir & '\autoit-v' & $s_LatestBetaVer & '.exe' $i_DownSize = $i_BetaSize ElseIf _StringInArray($CmdLine, '/prebeta') And _CompareVersions($s_PreBetaVer, $s_CurrVer) Then $s_AutoUpdate = $s_PreBetaFile $s_DownTemp = @TempDir & '\autoit-v' & $s_PreBetaVer & '.exe' $i_DownSize = $i_PreBetaSize EndIf If $s_AutoUpdate Then InetGet($s_AutoUpdate, $s_DownTemp, 1, 1) $s_DownSize = Round($i_ReleaseSize / 1024) & ' KB' While @InetGetActive _Status('Downloading update', '', @InetGetBytesRead, $i_DownSize) WEnd _Status('Download Complete', 'Launching install') Sleep(1000) If _StringInArray($CmdLine, '/silent') Then _Start('"' & $s_DownTemp & '" /S') Else _Start('"' & $s_DownTemp & '"') EndIf Else _Status('No new versions available') Sleep(1000) EndIf Exit EndIf ; ======================================== ; GUI - Main Application ; ======================================== Opt("GuiResizeMode", $GUI_DOCKALL) $gui_Main = GUICreate($s_Title, 350, 310 + 20) $me_Mn_Help = GUICtrlCreateMenu('&Help') $me_Mn_Proxy = GUICtrlCreateMenuItem('Disable IE''s &proxy server', $me_Mn_Help) $me_Mn_VisitSite = GUICtrlCreateMenuItem('&Visit the AutoIt3 Website', $me_Mn_Help) $me_Mn_About = GUICtrlCreateMenuItem('&About', $me_Mn_Help) $lb_separator=GUICtrlCreateLabel('', 0, 0, 350, 2, $SS_SUNKEN) $gr_Instal_Details = GUICtrlCreateGroup('Current Installation Details', 5, 5, 340, 70) GUICtrlCreateLabel('Production Version: ' & $s_CurrVer, 15, 25, 160, 15) GUICtrlCreateLabel('Date: ' & $s_CurrDate, 15, 40, 160, 15) GUICtrlCreateLabel('Path: ' & $s_Au3Path, 15, 55, 160, 15) GUICtrlSetFont(-1, 6) GUICtrlCreateLabel('Beta Version: ' & $s_CurrBetaVer, 190, 25, 150, 15) GUICtrlCreateLabel('Date: ' & $s_CurrBetaDate, 190, 40, 150, 15) GUICtrlCreateLabel('Path: ' & $s_BetaPath, 190, 55, 150, 15) GUICtrlSetFont(-1, 6) $gr_Mn_Release = GUICtrlCreateGroup('Latest Public Release', 5, 85, 165, 60) $lb_Mn_ReleaseVer = GUICtrlCreateLabel('Version: Loading...', 15, 105, 145, 15) $lb_Mn_ReleaseDate = GUICtrlCreateLabel('Date: Loading...', 15, 120, 145, 15) $gr_Mn_Beta = GUICtrlCreateGroup('Latest Beta', 180, 85, 165, 60) $lb_Mn_BetaVer = GUICtrlCreateLabel('Version: Loading...', 190, 105, 145, 15) $lb_Mn_BetaDate = GUICtrlCreateLabel('Date: Loading...', 190, 120, 145, 15) $gr_Mn_PreBeta = GUICtrlCreateGroup('Latest Pre-Beta', 180 + 175, 85, 165, 60) $lb_Mn_PreBetaVer = GUICtrlCreateLabel('Version: Loading...', 190 + 175, 105, 145, 15) $lb_Mn_PreBetaDate = GUICtrlCreateLabel('Date: Loading...', 190 + 175, 120, 145, 15) GUIStartGroup() $ra_Mn_DoneNotify = GUICtrlCreateRadio('&Notify when download complete', 5, 155, 340, 15) $ra_Mn_DoneRun = GUICtrlCreateRadio('&Autorun install when download complete', 5, 175, 340, 15) ; Check default done option If RegRead($s_Au3UpReg, 'DoneOption') = 'Run' Then GUICtrlSetState($ra_Mn_DoneRun, $GUI_CHECKED) Else GUICtrlSetState($ra_Mn_DoneNotify, $GUI_CHECKED) EndIf $bt_Mn_Close = GUICtrlCreateButton('&Close', 10, 275, 330, 25) ; ======================================== ; Control Set - Download Buttons ; ======================================== $bt_Mn_ReleaseDl = GUICtrlCreateButton('Download Public &Release', 5, 195, 165, 30) GUICtrlSetState(-1, $GUI_DISABLE) $lb_Mn_ReleaseSize = GUICtrlCreateLabel('Size: Loading...', 5, 230, 165, 15, $SS_CENTER) $lb_Mn_ReleasePage = GUICtrlCreateLabel('Visit Download Page', 5, 245, 165, 15, $SS_CENTER) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlSetFont(-1, 9, 400, 4) GUICtrlSetColor(-1, 0x0000ff) GUICtrlSetCursor(-1, 0) $bt_Mn_BetaDl = GUICtrlCreateButton('Download &Beta', 180, 195, 165, 30) GUICtrlSetState(-1, $GUI_DISABLE) $lb_Mn_BetaSize = GUICtrlCreateLabel('Size: Loading...', 180, 230, 165, 15, $SS_CENTER) $lb_Mn_BetaPage = GUICtrlCreateLabel('Visit Download Page', 180, 245, 165, 15, $SS_CENTER) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlSetFont(-1, 9, 400, 4) GUICtrlSetColor(-1, 0x0000ff) GUICtrlSetCursor(-1, 0) $bt_Mn_PreBetaDl = GUICtrlCreateButton('Download &Pre-Beta', 180 + 175, 195, 165, 30) GUICtrlSetState(-1, $GUI_DISABLE) $lb_Mn_PreBetaSize = GUICtrlCreateLabel('Size: Loading...', 180 + 175, 230, 165, 15, $SS_CENTER) $lb_Mn_PreBetaPage = GUICtrlCreateLabel('Visit Download Page', 180 + 175, 245, 165, 15, $SS_CENTER) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlSetFont(-1, 9, 400, 4) GUICtrlSetColor(-1, 0x0000ff) GUICtrlSetCursor(-1, 0) $a_DownButtons = StringSplit($bt_Mn_ReleaseDl & '.' & _ $lb_Mn_ReleaseSize & '.' & _ $lb_Mn_ReleasePage & '.' & _ $bt_Mn_BetaDl & '.' & _ $lb_Mn_BetaSize & '.' & _ $lb_Mn_BetaPage & '.' & _ $bt_Mn_PreBetaDl & '.' & _ $lb_Mn_PreBetaSize & '.' & _ $lb_Mn_PreBetaPage, '.') ; ======================================== ; Control Set - Download Display ; ======================================== $lb_Mn_DwnToTtl = GUICtrlCreateLabel('Downloading to:', 5, 195, 290, 15, $SS_LEFTNOWORDWRAP) $lb_Mn_DwnToTxt = GUICtrlCreateLabel('', 5, 210, 290, 15, $SS_LEFTNOWORDWRAP) $pg_Mn_Progress = GUICtrlCreateProgress(5, 225, 340, 20) $lb_Mn_Progress = GUICtrlCreateLabel('', 5, 250, 290, 15) $bt_Mn_OpenFile = GUICtrlCreateButton('&Open', 105, 275, 75, 25) GUICtrlSetState(-1, $GUI_DISABLE) $bt_Mn_OpenFolder = GUICtrlCreateButton('Open &Folder', 185, 275, 75, 25) GUICtrlSetState(-1, $GUI_DISABLE) $a_DownDisplay = StringSplit($lb_Mn_DwnToTtl & '.' & _ $lb_Mn_DwnToTxt & '.' & _ $pg_Mn_Progress & '.' & _ $lb_Mn_Progress & '.' & _ $bt_Mn_OpenFile & '.' & _ $bt_Mn_OpenFolder, '.') _GuiCtrlGroupSetState($a_DownDisplay, $GUI_HIDE) ; ======================================== ; GUI - About ; ======================================== $gui_About = GUICreate('About', 300, 120, -1, -1, BitOR($WS_CAPTION, $WS_SYSMENU), -1, $gui_Main) GUICtrlCreateLabel($s_Title & ' v' & $s_Version & ' - The AutoIt3 Update Utility' & @LF & _ @LF & _ 'This application is a utility for easily receiving the most ' & _ 'recent public release or beta version of AutoIt3 available. ' & _ 'It was written in AutoIt3 script by Rob Saunders.', 5, 5, 290, 75) $lb_Ab_VisitSite = GUICtrlCreateLabel('Visit the AutoIt Website', 5, 100, 145, 15) GUICtrlSetFont(-1, 9, 400, 4) GUICtrlSetColor(-1, 0x0000ff) GUICtrlSetCursor(-1, 0) GUICtrlSetTip(-1, 'http://www.autoitscript.com') ;$lb_Ab_ContactAuthor = GUICtrlCreateLabel('Contact Rob Saunders', 5, 100, 145, 15) ;GUICtrlSetFont(-1, 9, 400, 4) ;GUICtrlSetColor(-1, 0x0000ff) ;GUICtrlSetCursor(-1, 0) ;GUICtrlSetTip(-1, 'rksaunders@gmail.com') $bt_Ab_Close = GUICtrlCreateButton('&Close', 220, 90, 75, 25) ; ======================================== ; Application start ; ======================================== ; Show Main Window If _StringInArray($CmdLine, '/noproxy') Then GUICtrlSetState($me_Mn_Proxy, $GUI_CHECKED) GUISetState(@SW_SHOW, $gui_Main) ; Download update data file If $b_Download_UpdateDat Then InetGet($s_DatFile, $s_DatFile_Local, 1, 1) Else FileCopy(@ScriptDir & '\update.dat',$s_DatFile_Local) ; to test locally EndIf ; Harness GUI Events While 1 $a_GMsg = GUIGetMsg(1) If Not @InetGetActive And Not $i_DatFileLoaded Then If @InetGetBytesRead = -1 AND $b_Download_UpdateDat Then $i_Res = MsgBox(5 + 16 + 8192, 'Error', 'Error connecting to server.' & @LF & _ 'Please verify the following:' & @LF & _ ' - You can connect to the internet' & @LF & _ ' - You can access the site http://www.AutoItScript.com' & @LF & _ ' - Your firewall is not blocking internet access to this program') If $i_Res = 4 Then InetGet($s_DatFile, $s_DatFile_Local, 1, 1) Else Exit EndIf Else _LoadUpdateData() If $s_PreBetaVer <> '' Then If _CompareVersions(StringTrimRight($s_PreBetaVer, 1), $s_LatestBetaVer) > 0 Then $pos = WinGetPos($s_Title) WinMove($s_Title, "", $pos[0], $pos[1], $pos[2] + 175, $pos[3]) GUICtrlSetPos($lb_separator, 0, 0, 350 + 175, 2) GUICtrlSetPos($gr_Instal_Details, 5, 5, 340 + 175, 75) GUICtrlSetPos($bt_Mn_Close, 10, 275, 330 + 175, 25) GUICtrlSetPos($lb_Mn_DwnToTtl, 5, 195, 290 + 175, 15) GUICtrlSetPos($lb_Mn_DwnToTxt, 5, 210, 290 + 175, 15) GUICtrlSetPos($pg_Mn_Progress, 5, 225, 340 + 175, 20) GUICtrlSetPos($lb_Mn_Progress, 5, 250, 290 + 175, 15) GUICtrlSetPos($bt_Mn_OpenFile, 105 + 175, 275, 75, 25) GUICtrlSetPos($bt_Mn_OpenFolder, 185 + 175, 275, 75, 25) Else $s_PreBetaVer = '' EndIf EndIf $i_ReleaseSizeKB = Round($i_ReleaseSize / 1024) $i_BetaSizeKB = Round($i_BetaSize / 1024) $i_PreBetaSizeKB = Round($i_PreBetaSize / 1024) If _CompareVersions($s_ReleaseVer, $s_CurrVer) Then GUICtrlSetData($gr_Mn_Release, 'Latest Public Release *New*') GUICtrlSetColor($gr_Mn_Release, 0x0000ff) EndIf GUICtrlSetData($lb_Mn_ReleaseVer, 'Version: ' & $s_ReleaseVer) If _CompareVersions($s_LatestBetaVer, $s_CurrBetaVer) Then GUICtrlSetData($gr_Mn_Beta, 'Latest Beta *New*') GUICtrlSetColor($gr_Mn_Beta, 0x0000ff) EndIf GUICtrlSetData($lb_Mn_BetaVer, 'Version: ' & $s_LatestBetaVer) If _CompareVersions($s_PreBetaVer, $s_CurrVer) Then GUICtrlSetData($gr_Mn_PreBeta, 'Latest pre-Beta *New*') GUICtrlSetColor($gr_Mn_PreBeta, 0x0000ff) EndIf GUICtrlSetData($lb_Mn_PreBetaVer, 'Version: ' & $s_PreBetaVer) GUICtrlSetData($lb_Mn_ReleaseDate, 'Date: ' & _FriendlyDate($i_ReleaseDate)) GUICtrlSetData($lb_Mn_BetaDate, 'Date: ' & _FriendlyDate($i_BetaDate)) GUICtrlSetData($lb_Mn_PreBetaDate, 'Date: ' & _FriendlyDate($i_PreBetaDate)) GUICtrlSetData($lb_Mn_ReleaseSize, 'Size: ' & $i_ReleaseSizeKB & ' KB') GUICtrlSetData($lb_Mn_BetaSize, 'Size: ' & $i_BetaSizeKB & ' KB') GUICtrlSetData($lb_Mn_PreBetaSize, 'Size: ' & $i_PreBetaSizeKB & ' KB') GUICtrlSetTip($lb_Mn_ReleasePage, $s_ReleasePage) GUICtrlSetTip($lb_Mn_BetaPage, $s_BetaPage) GUICtrlSetTip($lb_Mn_PreBetaPage, $s_PreBetaPage) GUICtrlSetState($bt_Mn_ReleaseDl, $GUI_ENABLE) GUICtrlSetState($bt_Mn_BetaDl, $GUI_ENABLE) GUICtrlSetState($bt_Mn_PreBetaDl, $GUI_ENABLE) GUICtrlSetState($lb_Mn_ReleasePage, $GUI_ENABLE) GUICtrlSetState($lb_Mn_BetaPage, $GUI_ENABLE) GUICtrlSetState($lb_Mn_PreBetaPage, $GUI_ENABLE) $i_DatFileLoaded = 1 EndIf EndIf If $i_DnInitiated Then If @InetGetActive Then $i_DnPercent = Int(@InetGetBytesRead / $i_DownSize * 100) $s_DnBytes = Round(@InetGetBytesRead / 1024) & ' KB' $s_DnSize = Round($i_DownSize / 1024) & ' KB' GUICtrlSetData($pg_Mn_Progress, $i_DnPercent) GUICtrlSetData($lb_Mn_Progress, 'Download Progress: ' & $i_DnPercent & '% (' & $s_DnBytes & ' of ' & $s_DnSize & ')') Else GUICtrlSetData($pg_Mn_Progress, 100) If Not FileMove($s_DownTemp, $s_DownPath, 1) Then MsgBox(16 + 8192, 'Error', 'Error moving file.') GUICtrlSetData($lb_Mn_Progress, 'Error') Else If GUICtrlRead($ra_Mn_DoneRun) = $GUI_CHECKED Then _Start('"' & $s_DownPath & '"') Exit Else GUICtrlSetData($lb_Mn_Progress, 'Download Complete!') GUICtrlSetData($bt_Mn_Close, '&Close') GUICtrlSetState($bt_Mn_OpenFile, $GUI_ENABLE) GUICtrlSetState($bt_Mn_OpenFolder, $GUI_ENABLE) $i_Response = MsgBox(4 + 64 + 256 + 8192, $s_Title, 'Download complete!' & @LF & _ 'Would you like to run the installer now?') If $i_Response = 6 Then _Start('"' & $s_DownPath & '"') Exit EndIf EndIf EndIf $i_DnInitiated = 0 EndIf EndIf If $a_GMsg[1] = $gui_Main Then Select ; Radio buttons Case $a_GMsg[0] = $ra_Mn_DoneRun RegWrite($s_Au3UpReg, 'DoneOption', 'REG_SZ', 'Run') Case $a_GMsg[0] = $ra_Mn_DoneNotify RegWrite($s_Au3UpReg, 'DoneOption', 'REG_SZ', 'Notify') ; Download buttons Case $a_GMsg[0] = $bt_Mn_ReleaseDl $tmp = StringInStr($s_ReleaseFile, '/', 0, -1) $s_DefFileName = StringTrimLeft($s_ReleaseFile, $tmp) $i_DownSize = $i_ReleaseSize _DownloadFile($s_ReleaseFile, 'autoit-v3-setup.exe') Case $a_GMsg[0] = $bt_Mn_BetaDl $tmp = StringInStr($s_BetaFile, '/', 0, -1) $s_DefFileName = StringTrimLeft($s_BetaFile, $tmp) $i_DownSize = $i_BetaSize _DownloadFile($s_BetaFile, 'autoit-v' & $s_LatestBetaVer & '.exe') Case $a_GMsg[0] = $bt_Mn_PreBetaDl $tmp = StringInStr($s_PreBetaFile, '/', 0, -1) $s_DefFileName = StringTrimLeft($s_PreBetaFile, $tmp) $i_DownSize = $i_PreBetaSize _DownloadFile($s_PreBetaFile, 'autoit-v' & $s_PreBetaVer & '.exe') ; Download page "hyperlinks" Case $a_GMsg[0] = $lb_Mn_ReleasePage _Start($s_ReleasePage) Case $a_GMsg[0] = $lb_Mn_BetaPage _Start($s_BetaPage) Case $a_GMsg[0] = $lb_Mn_PreBetaPage _Start($s_PreBetaPage) ; Open buttons Case $a_GMsg[0] = $bt_Mn_OpenFile _Start('"' & $s_DownPath & '"') Exit Case $a_GMsg[0] = $bt_Mn_OpenFolder _Start('"' & EnvGet('windir') & '\explorer.exe" /select,"' & $s_DownPath & '"') Exit ; Menu items Case $a_GMsg[0] = $me_Mn_Proxy If BitAnd(GUICtrlRead($me_Mn_Proxy), $GUI_CHECKED) = $GUI_CHECKED Then GUICtrlSetState($me_Mn_Proxy, $GUI_UNCHECKED) HttpSetProxy(0) Else GUICtrlSetState($me_Mn_Proxy, $GUI_CHECKED) HttpSetProxy(1) EndIf Case $a_GMsg[0] = $me_Mn_VisitSite _Start('http://www.autoitscript.com') Case $a_GMsg[0] = $me_Mn_About GUISetState(@SW_SHOW, $gui_About) ; Close buttons Case $a_GMsg[0] = $bt_Mn_Close _CancelDownload() Case $a_GMsg[0] = $GUI_EVENT_CLOSE _CancelDownload(1) EndSelect ElseIf $a_GMsg[1] = $gui_About Then Select Case $a_GMsg[0] = $lb_Ab_VisitSite _Start('http://www.autoitscript.com') ; Case $a_GMsg[0] = $lb_Ab_ContactAuthor ; _Start('"mailto:rksaunders@gmail.com?Subject=AutoIt3 Update Utility"') Case $a_GMsg[0] = $GUI_EVENT_CLOSE Or $a_GMsg[0] = $bt_Ab_Close GUISetState(@SW_HIDE, $gui_About) EndSelect EndIf WEnd ; ======================================== ; Function Declarations ; ======================================== ; App. specific functions Func _DownloadFile($s_DownUrl, $s_DownName) $s_DownTemp = @TempDir & '\' & $s_DownName InetGet($s_DownUrl, $s_DownTemp, 1, 1) $s_DownPath = FileSaveDialog('Save As', $s_DefDownDir, 'Executables (*.exe)', 16, $s_DownName) If Not @error Then If Not (StringRight($s_DownPath, 4) = '.exe') Then $s_DownPath = $s_DownPath & '.exe' EndIf $tmp = StringInStr($s_DownPath, '\', 0, -1) $s_DownFolder = StringLeft($s_DownPath, $tmp) RegWrite($s_Au3UpReg, 'DownloadDir', 'REG_SZ', $s_DownFolder) GUICtrlSetData($lb_Mn_DwnToTxt, _ClipPath($s_DownPath, 55)) GUICtrlSetData($lb_Mn_Progress, 'Download Progress: Calculating...') _GuiCtrlGroupSetState($a_DownButtons, $GUI_HIDE) _GuiCtrlGroupSetState($a_DownButtons, $GUI_DISABLE) _GuiCtrlGroupSetState($a_DownDisplay, $GUI_SHOW) If $s_PreBetaVer <> '' Then GUICtrlSetPos($bt_Mn_Close, 265 + 175, 275, 75, 25) Else GUICtrlSetPos($bt_Mn_Close, 265, 275, 75, 25) EndIf GUICtrlSetData($bt_Mn_Close, 'Cancel') $i_DnInitiated = 1 Else InetGet('abort') FileDelete($s_DownTemp) EndIf EndFunc ;==>_DownloadFile Func _CancelDownload($i_Flag = 0) If $i_DnInitiated Then $i_Response = MsgBox(4 + 64 + 256 + 8192, $s_Title, 'Resuming is not possible.' & @LF & _ 'Your download will be lost.' & @LF & _ 'Continue?') If $i_Response = 6 Then $i_DnInitiated = 0 InetGet('abort') FileDelete($s_DownTemp) If $i_Flag = 1 Then Exit EndIf _GuiCtrlGroupSetState($a_DownDisplay, $GUI_HIDE) GUICtrlSetData($bt_Mn_Close, '&Close') If $s_PreBetaVer <> '' Then GUICtrlSetPos($bt_Mn_Close, 10, 275, 330 + 175, 25) Else GUICtrlSetPos($bt_Mn_Close, 10, 275, 330, 25) EndIf GUICtrlSetData($pg_Mn_Progress, 0) _GuiCtrlGroupSetState($a_DownButtons, $GUI_SHOW) _GuiCtrlGroupSetState($a_DownButtons, $GUI_ENABLE) EndIf Else Exit EndIf EndFunc ;==>_CancelDownload Func _LoadUpdateData() Global $s_ReleaseVer, $s_ReleaseFile, $s_ReleasePage, $i_ReleaseSize, $i_ReleaseDate Global $s_LatestBetaVer, $s_BetaFile, $s_BetaPage, $i_BetaSize, $i_BetaDate Global $s_PreBetaVer, $s_PreBetaFile, $s_PreBetaPage, $i_PreBetaSize, $i_PreBetaDate $s_ReleaseVer = IniRead($s_DatFile_Local, 'AutoIt', 'version', 'Error reading file') $s_ReleaseFile = IniRead($s_DatFile_Local, 'AutoIt', 'setup', '') $s_ReleasePage = IniRead($s_DatFile_Local, 'AutoIt', 'index', 'http://www.autoitscript.com') $i_ReleaseSize = IniRead($s_DatFile_Local, 'AutoIt', 'filesize', 0) $i_ReleaseDate = IniRead($s_DatFile_Local, 'AutoIt', 'filetime', 0) $s_LatestBetaVer = IniRead($s_DatFile_Local, 'AutoItBeta', 'version', 'Error reading file') $s_BetaFile = IniRead($s_DatFile_Local, 'AutoItBeta', 'setup', '') $s_BetaPage = IniRead($s_DatFile_Local, 'AutoItBeta', 'index', 'http://www.autoitscript.com') $i_BetaSize = IniRead($s_DatFile_Local, 'AutoItBeta', 'filesize', 0) $i_BetaDate = IniRead($s_DatFile_Local, 'AutoItBeta', 'filetime', 0) $s_PreBetaVer = IniRead($s_DatFile_Local, 'AutoItPreBeta', 'version', '') $s_PreBetaFile = IniRead($s_DatFile_Local, 'AutoItPreBeta', 'setup', '') $s_PreBetaPage = IniRead($s_DatFile_Local, 'AutoItPreBeta', 'index', 'http://www.autoitscript.com') $i_PreBetaSize = IniRead($s_DatFile_Local, 'AutoItPreBeta', 'filesize', 0) $i_PreBetaDate = IniRead($s_DatFile_Local, 'AutoItPreBeta', 'filetime', 0) FileDelete($s_DatFile_Local) EndFunc ;==>_LoadUpdateData ; Utility functions Func _Start($s_StartPath) If @OSTYPE = 'WIN32_NT' Then $s_StartStr = @ComSpec & ' /c start "" ' Else $s_StartStr = @ComSpec & ' /c start ' EndIf Run($s_StartStr & $s_StartPath, '', @SW_HIDE) EndFunc ;==>_Start Func _GuiCtrlGroupSetState(ByRef $a_GroupArray, $i_State) For $i = 1 To $a_GroupArray[0] GUICtrlSetState($a_GroupArray[$i], $i_State) Next EndFunc ;==>_GuiCtrlGroupSetState Func _ClipPath($s_Path, $i_ClipLen) Local $i_Half, $s_Left, $s_Right If StringLen($s_Path) > $i_ClipLen Then $i_Half = Int($i_ClipLen / 2) $s_Left = StringLeft($s_Path, $i_Half) $s_Right = StringRight($s_Path, $i_Half) $s_Path = $s_Left & '...' & $s_Right EndIf Return $s_Path EndFunc ;==>_ClipPath Func _NumSuffix($i_Num) Local $s_Num Switch Int($i_Num) Case 1, 21, 31 $s_Num = Int($i_Num) & 'st' Case 2, 22 $s_Num = Int($i_Num) & 'nd' Case 3, 23 $s_Num = Int($i_Num) & 'rd' Case Else $s_Num = Int($i_Num) & 'th' EndSwitch Return $s_Num EndFunc ;==>_NumSuffix Func _FriendlyDate($s_Date) Local $a_Months = StringSplit('January,February,March,April,May,June,July,August,September,October,November,December', ',') Local $s_Year, $s_Month, $s_Day $s_Year = StringLeft($s_Date, 4) $s_Month = StringMid($s_Date, 5, 2) $s_Month = $a_Months[Int(StringMid($s_Date, 5, 2)) ] $s_Day = StringMid($s_Date, 7, 2) $s_Day = _NumSuffix(StringMid($s_Date, 7, 2)) Return $s_Month & ' ' & $s_Day & ', ' & $s_Year EndFunc ;==>_FriendlyDate Func _StringInArray($a_Array, $s_String) Local $i_ArrayLen = UBound($a_Array) - 1 For $i = 0 To $i_ArrayLen If $a_Array[$i] = $s_String Then Return $i EndIf Next SetError(1) Return 0 EndFunc ;==>_StringInArray Func _CompareVersions($s_Vers1, $s_Vers2, $i_ReturnFlag = 0) If $s_Vers1 = '' Then Return 0 Local $i, $i_Vers1, $i_Vers2, $i_Top Local $a_Vers1 = StringSplit($s_Vers1, '.') Local $a_Vers2 = StringSplit($s_Vers2, '.') $i_Top = $a_Vers1[0] If $a_Vers1[0] < $a_Vers2[0] Then $i_Top = $a_Vers2[0] EndIf For $i = 1 To $i_Top $i_Vers1 = 0 $i_Vers2 = 0 If $i <= $a_Vers1[0] Then $i_Vers1 = Number($a_Vers1[$i]) EndIf If $i <= $a_Vers2[0] Then $i_Vers2 = Number($a_Vers2[$i]) EndIf If $i_Vers1 > $i_Vers2 Then $v_Return = 1 ExitLoop ElseIf $i_Vers1 < $i_Vers2 Then $v_Return = 0 ExitLoop Else $v_Return = -1 EndIf Next If $i_ReturnFlag Then Select Case $v_Return = -1 SetError(1) Return 0 Case $v_Return = 1 Return $s_Vers1 Case $v_Return = 0 Return $s_Vers2 EndSelect ElseIf $v_Return = -1 Then SetError(1) Return 0 Else Return $v_Return EndIf EndFunc ;==>_CompareVersions Func _Status($s_MainText, $s_SubText = '', $i_BytesRead = -1, $i_DownSize = -1) Global $i_ProgOn Global $i_StatusPercent If @OSVersion = "WIN_XP" Or @OSVersion = "WIN_2000" Or @OSVersion = "WIN_2003" Then If $s_SubText <> '' Then $s_SubText = @LF & $s_SubText EndIf If $i_BytesRead = -1 Then TrayTip($s_Title, $s_MainText & $s_SubText, 10, 16) Else $s_DownStatus = Round($i_BytesRead / 1024) & ' of ' & Round($i_DownSize / 1024) & ' KB' TrayTip($s_Title, $s_MainText & $s_SubText & @LF & $s_DownStatus, 10, 16) EndIf Else If Not $i_ProgOn Then ProgressOn($s_Title, $s_MainText, $s_SubText, -1, -1, 2 + 16) $i_ProgOn = 1 Else If $i_BytesRead = -1 Then ProgressSet($i_StatusPercent, $s_SubText, $s_MainText) Else $s_DownStatus = 'Downloading ' & Round($i_BytesRead / 1024) & ' of ' & Round($i_DownSize / 1024) & ' KB' $i_StatusPercent = Round($i_BytesRead / $i_DownSize * 100) ProgressSet($i_StatusPercent, $s_DownStatus, $s_MainText) EndIf EndIf EndIf EndFunc ;==>_Status Edited July 29, 2007 by erebus Link to comment Share on other sites More sharing options...
erebus Posted July 31, 2007 Share Posted July 31, 2007 Anyone tested the new version? Ideas? Link to comment Share on other sites More sharing options...
MadBoy Posted July 31, 2007 Share Posted July 31, 2007 Anyone tested the new version? Ideas?I haven't tested it but what i lack in the current version in autoit package is the link to newest beta or non beta chagelog. It would be nice to have those displayed somewhere. My little company: Evotec (PL version: Evotec) Link to comment Share on other sites More sharing options...
erebus Posted July 31, 2007 Share Posted July 31, 2007 This can be done, however it would require a total GUI redesign as it is too small. Link to comment Share on other sites More sharing options...
erebus Posted August 7, 2007 Share Posted August 7, 2007 Well, I assume that nobody uses this thing... Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now