Hi,
da ich vor kurzem auf Iron umgestiegen bin und es mir missfiel, dass es keine Funktion zur automatischen Suche nach Updates gibt, habe ich ein kleines Tool geschrieben, welches diesen Part übernimmt.
Was macht es genau?
Suche nach Updates bei jedem Iron-Start.
Falls Update gefunden erscheint ein Fenster welches das mitteilt.
Falls man das Update installieren möchte, wird der Setup heruntergeladen und gestartet.
Der User muss jetzt noch den Setup durchqueren (was 10 Sekunden dauert), dabei muss Iron geschlossen werden.
Wie funktioniert das?
Der IronUpdater startet, wenn er ausgeführt wird, den Browser. Der Browser wird somit direkt über den Updater gestartet. Im Hintergrund läuft derweil die Suche nach Updates.
Vorgehensweise
1. Programm herunterladen
2. "IronUpdater.exe" in das Iron-Verzeichnis kopieren (muss im gleichen Ordner sein wie die "iron.exe")
3. Verknüfung zum IronUpdater erstellen, zukünftig den Browser über diese neue Verknüpfung ausführen
Download
Klick und liebe mich
Für Misstrauische oder Neugierige der Sourcecode:
- #NoTrayIcon
- #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
- #AutoIt3Wrapper_Icon=iron.ico
- #AutoIt3Wrapper_UseUpx=n
- #AutoIt3Wrapper_Res_Comment=Iron Updater by S3cret
- #AutoIt3Wrapper_Res_Description=Autocheck for updates of Iron-Browser
- #AutoIt3Wrapper_Res_Fileversion=1.0.0.0
- #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
- #cs
- Made by S3cret
- Version 1.0
- 07/05/2012
- #ce
- $iron = @ScriptDir & "\iron.exe"
- Run($iron)
- If @error Then
- MsgBox(16, "Iron Updater", "Iron could not be started." & @CRLF & "Please make sure that 'iron.exe' is in the same folder as the Updater.")
- Exit
- EndIf
- #include <Inet.au3>
- #include <String.au3>
- #include <Misc.au3>
- If _Singleton("Iron_Updater", 1) = 0 Then Exit
- Opt("GUIResizeMode", 802)
- Sleep(5000)
- $_ironCurrentVersion = getInstalledIronVersion()
- $_newIron = getLatestIronVersion()
- If $_newIron = False Then Exit
- If StringInStr(FileRead("NoUpdates.txt"), $_newIron[0], 2) <> 0 Then Exit
- If removeDots($_newIron[0]) <= removeDots($_ironCurrentVersion) Then Exit
- $_GUI = GUICreate("New Iron found!", 280, 150, Default, Default, Default, 0x00000008) ;TopMost
- GUICtrlCreateLabel("There is a new Iron-Browser available to install:" & @CRLF & @CRLF & _
- "Current version:" & @TAB & $_ironCurrentVersion & @CRLF & _
- "New version:" & @TAB & $_newIron[0] & " (released on " & $_newIron[1] & ")" & @CRLF & @CRLF & _
- "Would you like to install this new version?", 10, 20, 260)
- $_buttonYes = GUICtrlCreateButton("Yes", 10, 110, 50)
- $_buttonRemindLater = GUICtrlCreateButton("Remind me later", 90, 110, 100)
- $_buttonNo = GUICtrlCreateButton("No", 220, 110, 50)
- GUISetState()
- While 1
- Switch GUIGetMsg()
- Case -3, $_buttonRemindLater
- GUIDelete($_GUI)
- Exit
- Case $_buttonNo
- GUIDelete($_GUI)
- FileWrite("NoUpdates.txt", @CRLF & $_newIron[0])
- Exit
- Case $_buttonYes
- $_labelProgress = GUICtrlCreateLabel("Downloading Iron " & $_newIron[0] & " ...", 10, 155, 260, 30)
- $_ironFile = @TempDir & "\iron.exe"
- $_currentResizing = 0
- $_resizingSpeed = 5
- $_maxResizing = 50
- While $_currentResizing < $_maxResizing
- $_GUIPos = WinGetPos($_GUI)
- WinMove($_GUI, "", $_GUIPos[0], $_GUIPos[1], $_GUIPos[2], $_GUIPos[3] + $_resizingSpeed)
- $_currentResizing += $_resizingSpeed
- WEnd
- $_ironSize = InetGetSize("http://www.srware.net/downloads/srware_iron.exe", 1)
- $_ironDownload = InetGet("http://www.srware.net/downloads/srware_iron.exe", $_ironFile, 1, 1)
- $_downloadDelay = 200
- $_downloadedBytes = InetGetInfo($_ironDownload, 0)
- $_newDownloadedBytes = 0
- Do
- Sleep(200)
- $_newDownloadedBytes = InetGetInfo($_ironDownload, 0)
- GUICtrlSetData($_labelProgress, "Downloading Iron " & $_newIron[0] & " ... " & _
- ($_newDownloadedBytes - $_downloadedBytes) * (1000 / 200) / 1024 & "kb/s (" & Round($_newDownloadedBytes / $_ironSize * 100, 0) & "%)")
- $_downloadedBytes = $_newDownloadedBytes
- Until InetGetInfo($_ironDownload, 2)
- InetClose($_ironDownload)
- GUICtrlSetData($_labelProgress, "Running setup, please close Iron to install the new version.")
- Sleep(3000)
- WinSetOnTop($_GUI, "", 0)
- Run($_ironFile)
- For $i = 9 To 0 Step -1
- If $i = 0 Then ExitLoop
- GUICtrlSetData($_labelProgress, "Please close Iron to install the new version." & @CRLF & "This window will close in " & $i & " seconds...")
- Sleep(1000)
- Next
- GUIDelete()
- Exit
- EndSwitch
- WEnd
- Func getLatestIronVersion()
- Local $_newIron[2]
- $_ironSource = _INetGetSource("http://www.srware.net/en/software_srware_iron_download.php")
- If @error Then Return False
- $_ironVersion = _StringBetween($_ironSource, "Version: <strong>", "</strong>", 0)
- If @error Then Return False
- $_newIron[0] = $_ironVersion[0]
- $_ironDate = _StringBetween($_ironSource, "Datum: ", "<br>")
- If Not @error Then $_newIron[1] = $_ironDate[0]
- Return $_newIron
- EndFunc ;==>getLatestIronVersion
- Func getInstalledIronVersion()
- Return FileGetVersion($iron)
- EndFunc ;==>getInstalledIronVersion
- Func removeDots($_string)
- Return StringReplace($_string, ".", "")
- EndFunc ;==>removeDots
Ich hoffe, dass einige dieses Tool gebrauchen können. Ich weiß, dass es ein ähnliches Programm bereits gibt, aber ich bevorzuge eigene
Hf