Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #NoTrayIcon
- #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
- #AutoIt3Wrapper_icon=system-software-update.ico
- #AutoIt3Wrapper_outfile=Updater.exe
- #AutoIt3Wrapper_UseUpx=n
- #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
- #Region
- #EndRegion
- #include <GUIConstantsEx.au3>
- #include <StaticConstants.au3>
- #include <WindowsConstants.au3>
- #include <ProgressConstants.au3>
- #include <HTTP.au3>
- ; updater nur einmal starten
- #include <misc.au3>
- If _Singleton("Updater.exe", 0) = 0 Then
- ProcessClose("Updater.exe")
- EndIf
- ; chrome prozess schliessen
- ProcessClose( "chrome.exe" )
- ; GUI für die Auswahl ob Beta oder Release Channel
- GUICreate( "Chrome Updater", 320, 75 )
- Opt( "GUICoordMode",2 )
- $dev = GUICtrlCreateButton ( "Dev Channel", 10, 30, 100 )
- $beta = GUICtrlCreateButton ( "Beta Channel", 0, -1 )
- $release = GUICtrlCreateButton ( "Release Channel", 0, -1 )
- GUISetState()
- ; GUI laufen lassen bis geschlossen wird
- While 1
- $msg = GUIGetMsg()
- Select
- Case $msg = $GUI_EVENT_CLOSE
- ExitLoop
- Case $msg = $dev
- ; 1 weiergeben an updater funktion fuer beta channel
- Updater(1)
- Case $msg = $beta
- ; 2 weitergeben an updater funktion fuer release channel
- Updater(2)
- Case $msg = $release
- ; 3 weitergeben an updater funktion fuer release channel
- Updater(3)
- EndSelect
- WEnd
- Func Updater($channel)
- ; gui schliessen
- GUIDelete()
- ; update ordner anlegen
- DirCreate( @ScriptDir&"\Update" )
- ; updates ordner anlegen für versionskontrolle
- DirCreate( @ScriptDir&"\Chrome\updates" )
- ; aktuellen chrome ermitteln
- $host='tools.google.com'
- $port=80
- $page='/service/update2'
- _HTTPSetUserAgent("Google Update", "1.2.183.7;winhttp")
- $socket=_HTTPConnect($host, $port)
- If $channel = 1 Then
- ;Dev-Channel
- $data='<?xml version="1.0" encoding="UTF-8"?><o:gupdate xmlns:o="http://www.google.com/update2/request" protocol="2.0" version="1.2.183.7" ismachine="0" machineid="{11111111-1111-1111-1111-111111111111}" userid="{11111111-1111-1111-1111-111111111111}" requestid="{11111111-1111-1111-1111-111111111111}"><o:os platform="win" version="5.1" sp="Service Pack 3"/><o:app appid="{8A69D345-D564-463C-AFF1-A69D9E530F96}" version="" lang="de" brand="" client="" iid="{11111111-1111-1111-1111-111111111111}"><o:updatecheck tag="2.0-dev"/></o:app></o:gupdate>'
- ElseIf $channel = 2 Then
- ;Beta-Channel
- $data='<?xml version="1.0" encoding="UTF-8"?><o:gupdate xmlns:o="http://www.google.com/update2/request" protocol="2.0" version="1.2.183.7" ismachine="0" machineid="{11111111-1111-1111-1111-111111111111}" userid="{11111111-1111-1111-1111-111111111111}" requestid="{11111111-1111-1111-1111-111111111111}"><o:os platform="win" version="5.1" sp="Service Pack 3"/><o:app appid="{8A69D345-D564-463C-AFF1-A69D9E530F96}" version="" lang="de" brand="" client="" iid="{11111111-1111-1111-1111-111111111111}"><o:updatecheck tag="1.1-beta"/></o:app></o:gupdate>'
- ElseIf $channel = 3 Then
- ;Final-Channel
- $data='<?xml version="1.0" encoding="UTF-8"?><o:gupdate xmlns:o="http://www.google.com/update2/request" protocol="2.0" version="1.2.183.7" ismachine="0" machineid="{11111111-1111-1111-1111-111111111111}" userid="{11111111-1111-1111-1111-111111111111}" requestid="{11111111-1111-1111-1111-111111111111}"><o:os platform="win" version="5.1" sp="Service Pack 3"/><o:app appid="{8A69D345-D564-463C-AFF1-A69D9E530F96}" version="" lang="de" brand="" client="" iid="{11111111-1111-1111-1111-111111111111}"><o:updatecheck/></o:app></o:gupdate>'
- EndIf
- _HTTPPost( $host, $page, $socket, $data )
- $body=_HTTPRead( $socket, 0 )
- $position=StringInStr( $body,"codebase=" )
- $urltmp=StringMid( $body,$position+10,Stringlen($body)-$position-10 )
- $url=StringSplit( $urltmp,'"' )
- $update_url = $url[1]
- ; url splitten und version aus der url auslesen
- $v_temp = StringSplit( $update_url, "/" ,0 )
- $version = $v_temp[7]
- ; falls versionsdatei existiert, updateurl zurücksetzen
- If FileExists( @ScriptDir&"\Chrome\updates\"&$version&".txt" ) Then $update_url = ""
- ; nichts gefunden, beenden
- If Not $update_url Then
- If @OSLang = 0407 Then
- MsgBox( 0,"Chrome Updater","Keine neue Version gefunden!" )
- Else
- MsgBox( 0,"Chrome Updater","No new version available!" )
- EndIf
- DirRemove( @ScriptDir&"\Update", 1)
- Exit
- EndIf
- ; progress fenster
- $window = GUICreate( "Chrome Download", 306, 40 )
- $progressbar = GUICtrlCreateProgress( 9, 15, 286, 17 )
- GUISetState( @SW_SHOW )
- ; dateigröße
- $fileSize = InetGetSize( $update_url )
- ; setup holen
- InetGet ( $update_url, @ScriptDir&"\Update\chrome_aktuell.exe" ,0 ,1 )
- ; progressfenster "refreshen", balken fortlaufend
- While @InetGetActive
- $percent = Round( ((@InetGetBytesRead / $fileSize) * 100) ) & "%"
- GUICtrlSetData( $progressbar, $percent )
- $msg = GUIGetMsg()
- ; falls progressfenster geschlossen wird, Download abbrechen, Update Ordner löschen und dann Exit
- if $msg = $GUI_EVENT_CLOSE then
- InetGet( "abort" )
- DirRemove( @ScriptDir&"\Update", 1)
- Exit
- EndIf
- Sleep(10)
- WEnd
- ; gui schliessen
- GUIDelete()
- ; 7za.exe inkludieren
- FileInstall( "7za.exe", @ScriptDir&"\" )
- ; setup entpacken
- RunWait( "7za.exe x """&@ScriptDir&"\Update\chrome_aktuell.exe"" -o"""&@ScriptDir&"\Update""" )
- ; chrome.7z entpacken
- RunWait( "7za.exe x """&@ScriptDir&"\Update\chrome.7z"" -o"""&@ScriptDir&"\Update\extracted""" )
- ; alles aus dem versionsnummern ordner in den Chrome Ordner
- $first = FileFindFirstFile( @ScriptDir&"\Update\extracted\Chrome-bin\*.*" )
- $versions_ordner = FileFindNextFile( $first )
- FileClose( $first )
- DirCopy( @ScriptDir&"\Update\extracted\Chrome-bin\"&$versions_ordner&"\", @ScriptDir&"\Chrome\", 1 )
- ; restlichen Dateien und Ordner
- FileCopy( @ScriptDir &"\Update\extracted\chrome.exe", @ScriptDir&"\Chrome\" ,1 )
- DirCopy( @ScriptDir &"\Update\extraced\Dictionaries", @ScriptDir&"\Chrome\" ,1 )
- ; alles aufräumen
- FileDelete( @ScriptDir &"\7za.exe" )
- DirRemove( @ScriptDir &"\Update\" , 1 )
- ; versions datei nach Chrome\updates schreiben
- $av_temp = FileFindFirstFile( @ScriptDir&"\Chrome\updates\*.txt" )
- $alte_version = FileFindNextFile( $av_temp )
- FileClose( $av_temp )
- FileDelete( @ScriptDir&"\Chrome\updates\"&$alte_version )
- FileWrite( @ScriptDir&"\Chrome\updates\"&$version&".txt", "" )
- ; message Box ausgeben wenn mit Update fertig
- If @OSLang = 0407 Then
- MsgBox( 0,"Chrome Updater","Chrome wurde aktualisiert" )
- Else
- MsgBox( 0,"Chrome Updater","Chrome updated" )
- EndIf
- ; updater beenden
- Exit
- EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement