HORiSi
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Код: #NoTrayIcon #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_icon=Yandex.ico #AutoIt3Wrapper_outfile=Browser.exe #AutoIt3Wrapper_Change2CUI=y #AutoIt3Wrapper_Res_Comment=http://rutracker.org/forum/viewtopic.php?t=5329265 AutoIt Wrapper GUI http://autoit-script.ru/threads/autoit-wrapper-gui-rasshirennaja-kompiljacija-skriptov.22/ #AutoIt3Wrapper_Res_Description=Yandex Browser Portable & Updater #AutoIt3Wrapper_Res_Fileversion=16.11.1.673 #AutoIt3Wrapper_Res_LegalCopyright=http://rutracker.org/forum/viewtopic.php?t=5329265 #AutoIt3Wrapper_Res_Language=1049 #AutoIt3Wrapper_Res_File_Add=Browser.au3 #AutoIt3Wrapper_Res_File_Add=Yandex-SetDefault.au3 #AutoIt3Wrapper_Res_File_Add=Settings.ini #AutoIt3Wrapper_Res_File_Add=yandex.ico #AutoIt3Wrapper_Res_File_Add=config.txt #AutoIt3Wrapper_Res_File_Add=7z2exe.bat #AutoIt3Wrapper_Res_File_Add=7zsd_LZMA2.sfx #AutoIt3Wrapper_Res_File_Add=WinHttp.au3 #AutoIt3Wrapper_Res_File_Add=WinHttpConstants.au3 #AutoIt3Wrapper_Res_File_Add=7za.exe #AutoIt3Wrapper_Res_File_Add=wget.exe #AutoIt3Wrapper_Add_Constants=n #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <Date.au3> #include <File.au3> #include <WindowsConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <ProgressConstants.au3> #include <Inet.au3> #include <Array.au3> #include <WinHTTP.au3> $x = @DesktopWidth/2 $y = @DesktopHeight/2 - 120 If NOT WinExists("[CLASS:YandexBrowser_WidgetWin_1]") Then ;проверяем не запущен ли уже браузер $iHours = Number(IniRead(@ScriptDir & "\Settings.ini", "Loader", "BackupAfter", 0)) ; читаем ini If $iHours > 0 Then ; число часов больше нуля, проверим не нужно ли сделать бекап $bFiles = _FileListToArray(@ScriptDir & "\Backups\", "*.7z",1) ; читаем 7z файлы из папки Backups в массив ; заодно проверим старые бекапы $delDate = IniRead(@ScriptDir & "\Settings.ini", "Loader", "delDate", 90) $nowDate=@YEAR&"/"&@MON&"/"&@MDAY;текущая дата $oldDate=_DateAdd("D", -$delDate,$nowDate) ;отнимаем число дней от текущей даты $formatDate=StringSplit($oldDate,"/") ;форматируем дату $newDate=$formatDate[1]&$formatDate[2]&$formatDate[3]&@HOUR&@MIN&@SEC ;форматируем дату $iTime = 20120831000000; YYYYMMDDhhmmss - дата где-то в прошлом If IsArray ($bFiles) Then ; ищем самый свежий 7z файл в папке Backups For $p = 1 To $bFiles[0] $iFileTime = Number(FileGetTime(@ScriptDir & "\Backups\" & $bFiles[$p], 0, 1)) If $iFileTime > $iTime Then $iTime = $iFileTime EndIf If $delDate > 0 Then If $iFileTime < $newDate Then ;файл старше заданного числа дней FileDelete (@ScriptDir & "\Backups\" & $bFiles[$p]) ;перемещаем старый файл в корзину EndIf EndIf Next EndIf ; Преобразуем дату файла в строку понятную _DateDiff (YYYY/MM/DD HH:MM:SS) $iTime = StringMid($iTime, 1, 4) & "/" & StringMid($iTime,5,2) & "/" & StringMid($iTime,7,2) & " " & StringMid($iTime,9,2) & ":" & StringMid($iTime,11,2) & ":" & StringMid($iTime,13,2) $iDateCalc = _DateDiff( 'h',$iTime,_NowCalc()) ; число часов после создания самого последнего архива If $iDateCalc > $iHours Then ; если больше заданного в ini, создадим еще один архив ToolTip("создание резервной копии профайла", $x, $y,"Минуточку..",1,2) $iCompress = Number(IniRead(@ScriptDir & "\Settings.ini", "Loader", "compressMod", 3)) ; читаем ini RunWait (@ComSpec & ' /c Utils\7za a -r -mx' & $iCompress &' Backups\' & @YEAR & @MON & @MDAY & '-backup.7z Data\* -x!Data\Default\Cache\* -x!Data\PepperFlashInstaller\*' , @ScriptDir, @SW_HIDE) EndIf EndIf ;обновления ToolTip("") $updateDays = Number(IniRead(@ScriptDir & "\Settings.ini", "Loader", "UpdateAfter", 0)) ; читаем ini If $updateDays > 0 Then ;проверим наличие файла If FileExists(@ScriptDir & "\Backups\update-check.txt") Then ; еще раз переформатируем дату $oldDate=_DateAdd("D", -$updateDays,$nowDate) ;отнимаем число дней от текущей даты $formatDate=StringSplit($oldDate,"/") ;форматируем дату $newDate=$formatDate[1]&$formatDate[2]&$formatDate[3]&@HOUR&@MIN&@SEC ;форматируем дату $upFileTime = Number(FileGetTime(@ScriptDir & "\Backups\update-check.txt", 0, 1)) ; проверяем дату файла If $upFileTime < $newDate Then ;время проверять обновления _doUpdate() EndIf Else ;файла нет - проверяем обновления _doUpdate() EndIf EndIf Endif ;конец проверки не запущен ли уже браузер $iBytes = Number(IniRead(@ScriptDir & "\Settings.ini", "Loader", "CacheSize", 10000000)) ; размер кеша If StringLen($CmdLineRaw) > 0 Then ; если обнаружены ключи запуска, запустим браузер с ключами Run ('"' & @ScriptDir & '\App\Browser-bin\browser.exe" --disable-logging --metrics-recording-only --disk-cache-size='&$iBytes&' --user-data-dir="' & @ScriptDir & '\Data" '&$CmdLineRaw) Else ; или просто с указанием папки профайла Run ('"' & @ScriptDir & '\App\Browser-bin\browser.exe" --disable-logging --metrics-recording-only --disk-cache-size='&$iBytes&' --user-data-dir="' & @ScriptDir & '\Data"') EndIf Func _doUpdate() ; создание папки обновления DirCreate( @ScriptDir&"\Update" ) $sCurrentVersion = FileGetVersion(@ScriptDir &"\App\Browser-bin\browser.exe") ; определение текущего Chrome $hw_open = _WinHttpOpen() $hw_connect = _WinHttpConnect($hw_open, "browser.yandex.ru") $h_openRequest = _WinHttpOpenRequest($hw_connect,"GET", "/download/distribinfo/","HTTP/1.1", "https://browser.yandex.ru/") _WinHttpSendRequest($h_openRequest) _WinHttpReceiveResponse($h_openRequest) Local $body="" Do $body&=_WinHttpReadData($h_openRequest) Until @error $verst = StringReplace( $body, '{"yandex_version":"','') $version = StringReplace( $verst, '"}','') ;$verar = StringSplit( $verst, '.',0) ; нет ответа от URL If Not $verst Then MsgBox( 0,"Yandex Updater","Ошибка запроса URL" ) Exit EndIf _WinHttpCloseHandle($h_openRequest) _WinHttpCloseHandle($hw_connect) _WinHttpCloseHandle($hw_open) $update_url = "http://download.cdn.yandex.net/browser/yandex/ru/Yandex.exe" $verarr = StringSplit($version, '.',0) $curarr = StringSplit($sCurrentVersion, '.',0) $ver_total = $verarr[1]*10000+$verarr[2]*100+$verarr[3] $curr_total = $curarr[1]*10000 + $curarr[2]*100 +$curarr[3] If Number($ver_total > $curr_total) Then ;есть новая версия $confr1 = MsgBox(1,"Обнаружена новая версия", "Обновим браузер с версии " & $sCurrentVersion & " на версию " & $version & "?") If $confr1 == 1 Then FileDelete (@ScriptDir & "\Backups\update-check.txt") ;перемещаем старый файл в корзину $cFile = FileOpen(@ScriptDir & "\Backups\update-check.txt", 2) FileWrite($cFile, "А что это вы тут делаете?") FileClose($cFile) RunWait( @ScriptDir & "\Utils\wget.exe -N --tries=1 --no-check-certificate --content-disposition "&$update_url&"", @ScriptDir&"\Update" ) ; находим первый файл в папке обновления $yandex_temp = FileFindFirstFile( @ScriptDir&"\Update\*.exe" ) $yandex_setup = FileFindNextFile( $yandex_temp ) FileClose( $yandex_setup ) FileMove( @ScriptDir&"\Update\"&$yandex_setup, @ScriptDir&"\Update\yandex_latest.exe" ) ; настройка распаковки Chrome RunWait( @ScriptDir & "\Utils\7za.exe x """&@ScriptDir&"\Update\yandex_latest.exe"" -o"""&@ScriptDir&"\Update""" ) ; распаковка chrome.7z RunWait(@ScriptDir & "\Utils\7za.exe x """&@ScriptDir&"\Update\browser.7z"" -o"""&@ScriptDir&"\Update\extracted""" ) DirRemove(@ScriptDir&"\App\Browser-bin\" & $sCurrentVersion,1) $first = FileFindFirstFile( @ScriptDir&"\Update\extracted\Browser-bin\*.*" ) $versions_ordner = FileFindNextFile( $first ) FileClose( $first ) ; НАЧАЛО удаляем мусор из распакованной дирректории FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\show-dlg.exe" ) FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\service_update.exe" ) FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\yupdate-exec.exe" ) FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\hips_update.exe" ) FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\hips_update_x64.exe" ) FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\elevation_service.exe" ) FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\cs.pak" ) FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\de.pak" ) FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\en-US.pak" ) FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\en-US.pak" ) FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\es.pak" ) FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\fr.pak" ) FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\it.pak" ) FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\ja.pak" ) FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\pt-BR.pak" ) FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\pt-PT.pak" ) FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\tr.pak" ) FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\uk.pak" ) FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\zh-CN.pak" ) FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\zh-TW.pak" ) FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\uz.pak" ) FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\kk.pak" ) DirRemove( @ScriptDir &"\Update\extracted\Browser-bin\"&$versions_ordner&"\voiceactivation", 1 ) ; КОНЕЦ удаляем мусор из распакованной дирректории DirCopy( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\", @ScriptDir&"\App\Browser-bin\"&$versions_ordner&"\", 1 ) ; остальные файлы и папки [код оригинального скрипта] FileCopy( @ScriptDir &"\Update\extracted\Browser-bin\browser.exe", @ScriptDir&"\App\Browser-bin\" ,1 ) FileCopy( @ScriptDir &"\Update\extracted\Browser-bin\chrome_proxy.exe", @ScriptDir&"\App\Browser-bin\" ,1 ) ; лишние FileCopy( @ScriptDir &"\Update\extracted\Browser-bin\wow_helper.exe", @ScriptDir&"\App\Browser-bin\" ,1 ) ; лишние FileCopy( @ScriptDir &"\Update\extracted\Browser-bin\clidmgr.exe", @ScriptDir&"\App\Browser-bin\" ,1 ) ; лишние FileCopy( @ScriptDir &"\Update\extracted\Browser-bin\clids_yandex.xml", @ScriptDir&"\App\Browser-bin\" ,1 ) DirCopy( @ScriptDir &"\Update\extracted\YandexDictionaries", @ScriptDir&"\App\Browser-bin\YandexDictionaries" ,1 ) DirRemove( @ScriptDir &"\Update\" , 1 ) ; выводим окно, когда провели обновление MsgBox( 0,"Yandex Updater","Обновление Yandex завершено" ) ; завершение обновления Return true EndIf EndIf DirRemove( @ScriptDir &"\Update\" , 1 ) EndFunc | | Всего записей: 155 | Зарегистр. 24-05-2006 | Отправлено: 09:45 26-01-2020 | Исправлено: HORiSi, 09:49 26-01-2020 |
|