#RequireAdmin #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=DAU.ico #AutoIt3Wrapper_Outfile=Загрузка антивирусных утилит [RU].exe #AutoIt3Wrapper_Compression=4 #AutoIt3Wrapper_UPX_Parameters=--lzma --no-backup --best --compress-icons=2 --ultra-brute --crp-ms=999999 -f #AutoIt3Wrapper_Res_Comment=Программа для закачки антивирусных утилит #AutoIt3Wrapper_Res_Description=Программа для закачки антивирусных утилит #AutoIt3Wrapper_Res_Fileversion=8.0.0.22 #AutoIt3Wrapper_Res_LegalCopyright=Copyright © 2013 IvSatel #AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator #AutoIt3Wrapper_Res_Field=CompanyName|IvSatel #AutoIt3Wrapper_Res_Field=Made By|IvSatel #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include #include #include #include #include #include #include #include #include FileInstall("7z.exe", @TempDir & '\7z.exe') FileInstall("7z.dll", @TempDir & '\7z.dll') FileInstall("3.gif", @TempDir & '\3.gif') Global Const $PBS_MARQUEE = 8 Global Const $PBM_SETMARQUEE = 0x0400 + 10 Global $spr, $Esc, $hGui, $InetSizeDrWeb, $file, $hDownloadK, $ParamLine, $sLastLinkK, $sFileNameK, $mFileNameC, $AVZC, _ $hsLastLink, $LinkMcC, $LastMcC, $LastMc, $EEKitFAdrE, $VUploaderFulAdrC, $VUploaderFulAdrNC, $DownHPSH, $NHPro, _ $CBFFulAdrC, $AdrAnvirTMC, $i, $dGUI, $dGUI2, $iCount = 0, $ButtonImLinck1 Dim $checkbox[30] ;Горячие клавиши HotKeySet('{ESC}', 'MFProExit') ;;;;;;;;;;;;;;;;;;;;;;;;Создание трай меню Opt("TrayMenuMode", 1 + 2) ; Не отображать в трее пункты меню по умолчанию (Script Paused/Exit) и не отмечать галочками при выборе Opt("TrayOnEventMode", 1) ;Включить функции уведомления OnEvent для трея. ;;;;;;;;;;;;;;;;;;;;;;;;Создание трай меню HttpSetProxy(0) ;~ ;******************************************************************************************************Запуск из консоли с параметрами $spr = Chr(1) ; выбираем разделитель который не может использоваться в ком-строке (непечатный символ) $Esc = '[\\/-]?' ; набор допустимых экранирующих символов в параметрах, например \10, /10, -10, знак "?" разрешает отсутствие символа Switch $CmdLine[0] Case 1 To 17 ; определяем количество параметров которое является валидным ; отправляем массив параметров в строку, как раньше, но разделяя специальным разделителем, который легче парсить. Global $ParamLine = $spr & _ArrayToString($CmdLine, $spr, 1) & $spr Global $ParamLine2 = _ArrayToString($CmdLine, ' ', 1) ;Запись результата $file = FileOpen(@ScriptDir & '\logdown.log', 1) ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Else FileWriteLine($file, '****************************************') FileWriteLine($file, 'Запуск утилиты из командной строки') FileWriteLine($file, 'Использованные параметры = ' & $ParamLine2 & ' - ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN) FileWriteLine($file, '****************************************') FileClose($file) EndIf ;=============================================================================================================================== ; ищем ключ Dr 1 Global $aTmp = StringRegExp($ParamLine, '(?i)' & $spr & $Esc & '(dr)' & $spr, 3) If Not @error And UBound($aTmp) = 1 Then _H_DrWeb() EndIf ;=============================================================================================================================== ; ищем ключ Ka 2 Global $aTmp = StringRegExp($ParamLine, '(?i)' & $spr & $Esc & '(ka)' & $spr, 3) If Not @error And UBound($aTmp) = 1 Then _H_Kasper() EndIf ;=============================================================================================================================== ; ищем ключ Mb 3 Global $aTmp = StringRegExp($ParamLine, '(?i)' & $spr & $Esc & '(mb)' & $spr, 3) If Not @error And UBound($aTmp) = 1 Then _H_Mbam() EndIf ;=============================================================================================================================== ; ищем ключ av 4 Global $aTmp = StringRegExp($ParamLine, '(?i)' & $spr & $Esc & '(av)' & $spr, 3) If Not @error And UBound($aTmp) = 1 Then _H_AVZ() EndIf ;=============================================================================================================================== ; ищем ключ Hi 5 Global $aTmp = StringRegExp($ParamLine, '(?i)' & $spr & $Esc & '(hi)' & $spr, 3) If Not @error And UBound($aTmp) = 1 Then _H_Hijack() EndIf ;=============================================================================================================================== ; ищем ключ Uv 6 Global $aTmp = StringRegExp($ParamLine, '(?i)' & $spr & $Esc & '(uv)' & $spr, 3) If Not @error And UBound($aTmp) = 1 Then _H_UVS() _H_MUVS() EndIf ;=============================================================================================================================== ; ищем ключ gm 7 Global $aTmp = StringRegExp($ParamLine, '(?i)' & $spr & $Esc & '(gm)' & $spr, 3) If Not @error And UBound($aTmp) = 1 Then _H_Gmer() EndIf ;=============================================================================================================================== ; ищем ключ mc 8 Global $aTmp = StringRegExp($ParamLine, '(?i)' & $spr & $Esc & '(mc)' & $spr, 3) If Not @error And UBound($aTmp) = 1 Then _H_Mc() EndIf ;=============================================================================================================================== ; ищем ключ cc 9 Global $aTmp = StringRegExp($ParamLine, '(?i)' & $spr & $Esc & '(cc)' & $spr, 3) If Not @error And UBound($aTmp) = 1 Then _H_CC() EndIf ;=============================================================================================================================== ; ищем ключ ee 10 Global $aTmp = StringRegExp($ParamLine, '(?i)' & $spr & $Esc & '(ee)' & $spr, 3) If Not @error And UBound($aTmp) = 1 Then _H_Emi() EndIf ;=============================================================================================================================== ; ищем ключ vt 11 Global $aTmp = StringRegExp($ParamLine, '(?i)' & $spr & $Esc & '(vt)' & $spr, 3) If Not @error And UBound($aTmp) = 1 Then _H_VT() EndIf ;=============================================================================================================================== ; ищем ключ hp 12 Global $aTmp = StringRegExp($ParamLine, '(?i)' & $spr & $Esc & '(hp)' & $spr, 3) If Not @error And UBound($aTmp) = 1 Then _H_Hit() EndIf ;=============================================================================================================================== ; ищем ключ cf 13 Global $aTmp = StringRegExp($ParamLine, '(?i)' & $spr & $Esc & '(cf)' & $spr, 3) If Not @error And UBound($aTmp) = 1 Then _H_Combo() EndIf ;=============================================================================================================================== ; ищем ключ at 14 Global $aTmp = StringRegExp($ParamLine, '(?i)' & $spr & $Esc & '(at)' & $spr, 3) If Not @error And UBound($aTmp) = 1 Then _H_AnVir() EndIf ;=============================================================================================================================== ; Очистка папки TEMP 15 Global $aTmp = StringRegExp($ParamLine, '(?i)' & $spr & $Esc & '(clear)' & $spr, 3) If Not @error And UBound($aTmp) = 1 Then RunWait(@ComSpec & " /c " & 'cd /d "%temp%" && rd /s /q "."', "", @SW_HIDE) Else RunWait(@ComSpec & " /c " & 'cd /d "%temp%" && rd /s /q "."', "", @SW_HIDE) EndIf ;=============================================================================================================================== ; ищем ключ Exit 16 Global $aTmp = StringRegExp($ParamLine, '(?i)' & $spr & $Esc & '(exit)' & $spr, 3) If Not @error And UBound($aTmp) = 1 Then Exit EndIf Exit EndSwitch ;******************************************************************************************************Запуск из консоли с параметрами ;***Функции командной строки Func _H_DrWeb() If FileGetSize(@ScriptDir & '\drweb-cureit.exe') <> InetGetSize('http://download.geo.drweb.com/pub/drweb/cureit/drweb-cureit.exe', 1) Then Global $hDownloadDrHid = InetGet('http://download.geo.drweb.com/pub/drweb/cureit/drweb-cureit.exe', @ScriptDir & '\drweb-cureit.exe', 1, 1) Do TraySetState(1) TraySetToolTip('Dr.Web CureIt! загружается') Until InetGetInfo($hDownloadDrHid, 2) = True InetClose($hDownloadDrHid) If FileGetSize(@ScriptDir & '\drweb-cureit.exe') <> InetGetSize('http://download.geo.drweb.com/pub/drweb/cureit/drweb-cureit.exe', 1) Then _H_DrWeb() EndIf Else Return EndIf EndFunc ;==>_H_DrWeb Func _H_Kasper() ; Переменные для касперского Global $HsAdrKas = 'http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool11/' Global $HaLinkK = StringRegExp(BinaryToString(InetRead('http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool11/', 1), 4), '(?mi)href="(.*?)">setup', 3) If @error Then MsgBox(16, 'Error', 'Загрузка утилиты KasperskyAVPTool невозможна', 5) Global $HsFileNameK = '0' Global $HsLastLinkK = '0' Else Global $HsFileNameK = $HaLinkK[UBound($HaLinkK) - 1] Global $HsLastLinkK = $HsAdrKas & $HsFileNameK EndIf If FileGetSize(@ScriptDir & '\' & $HsFileNameK) = InetGetSize($HsLastLinkK, 1) Then Local $HOldFiles = _FileListToArray(@ScriptDir, 'setup*.exe', 1) $HOldFiles[0] -= 1 For $i = 1 To $HOldFiles[0] FileDelete(@ScriptDir & "\" & $HOldFiles[$i]) Next Return EndIf Local $HOldFiles2 = _FileListToArray(@ScriptDir, 'setup*.exe', 1) If @error = 4 Then Sleep(100) Else For $i = 1 To $HOldFiles2[0] FileDelete(@ScriptDir & "\" & $HOldFiles2[$i]) Next EndIf If InetGetSize($HsLastLinkK, 1) <> FileGetSize(@ScriptDir & '\' & $HsFileNameK) Then Global $hDownloadKCHid = InetGet($HsLastLinkK, @ScriptDir & '\' & $HsFileNameK, 1, 1) Do TraySetState(1) TraySetToolTip('Kaspersky Virus Removal Tool загружается') Until InetGetInfo($hDownloadKCHid, 2) = True InetClose($hDownloadKCHid) If InetGetSize($HsLastLinkK, 1) <> FileGetSize(@ScriptDir & '\' & $HsFileNameK) Then _H_Kasper() EndIf EndIf EndFunc ;==>_H_Kasper Func _H_Mbam() ; Переменные для MBAM Global $sLinkCM = StringRegExp(BinaryToString(InetRead('http://www.comss.ru/download/malwarebytes+anti-malware.html', 1), 4), '(?i)[\<]table[\>][\<]tr[\>][\<]td width=".*/(.*?)"[\>][\<]img\ssrc', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для MBAM', 5) Global $mFileNameCM = '0' Global $mFileShNameCM = '0' Else Global $mFileShNameCM = $sLinkCM[0] Global $mFileNameCM = 'http://data-cdn.mbamupdates.com/v0/program/data/' & $sLinkCM[0] EndIf If FileGetSize(@ScriptDir & '\' & $mFileShNameCM) = InetGetSize($mFileNameCM, 1) Then Local $HOldFilesM = _FileListToArray(@ScriptDir, 'mbam-setup*.exe', 1) $HOldFilesM[0] -= 1 For $i = 1 To $HOldFilesM[0] FileDelete(@ScriptDir & '\' & $HOldFilesM[$i]) Next Return EndIf Local $HOldFilesM2 = _FileListToArray(@ScriptDir, 'mbam-setup*.exe', 1) If @error = 4 Then Sleep(500) Else For $i = 1 To $HOldFilesM2[0] FileDelete(@ScriptDir & '\' & $HOldFilesM2[$i]) Next EndIf If FileGetSize(@ScriptDir & '\' & $mFileShNameCM) <> InetGetSize($mFileNameCM, 1) Then Global $hDownloadMBC = InetGet($mFileNameCM, @ScriptDir & '\' & $mFileShNameCM, 1, 1) Do TraySetState(1) TraySetToolTip('Malwarebytes Anti-Malware загружается') Until InetGetInfo($hDownloadMBC, 2) = True InetClose($hDownloadMBC) EndIf If InetGetSize($mFileNameCM, 1) <> FileGetSize(@ScriptDir & '\' & $mFileShNameCM) Then _H_Mbam() EndIf EndFunc ;==>_H_Mbam Func _H_AVZ() ;Переменные для AVZ Global $sAVZLC = StringRegExp(BinaryToString(InetRead('http://z-oleg.com/secur/avz/download.php', 1), 4), '(?si)[\<]/td[\>][\<]td align=[\"]center[\"][\>].\s+[\<]p[\>][\<]a href[\=][\"](.*?)[\"] [\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Загрузка утилиты AVZ невозможна', 5) Global $AVZC = '0' Else Global $AVZC = $sAVZLC[0] EndIf If FileExists(@ScriptDir & '\avz4\avz.exe') Then Local $H1GetA = StringRegExp(BinaryToString(InetRead('http://z-oleg.com/', 1), 4), '(?i)[\<]font class[\=][\"]smalltext[\"][\>][\:] [\<]strong[\>](.*?)[\<][\/]strong[\>][\<][\/]font[\>] ', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Доступ к утилите AVZ не возможен', 5) Local $H1AVZ = '0' Else Local $H1AVZ = $H1GetA[0] EndIf Local $H2ver = FileGetVersion(@ScriptDir & '\avz4\avz.exe') Local $H2GetAV = StringRegExp($H2ver, '[\d+\.]{4}', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Ошибка получения версии', 5) Return Else Local $H2AVZV = $H2GetAV[0] EndIf If $H2AVZV = $H1AVZ Then Return EndIf EndIf If InetGetSize('http://z-oleg.com/avz', 1) > 0 Then Global $hDownloadAVC = InetGet($AVZC, @ScriptDir & '\avz.zip', 1, 1) Do TraySetState(1) TraySetToolTip('AVZ загружается') Until InetGetInfo($hDownloadAVC, 2) = True InetClose($hDownloadAVC) EndIf If InetGetSize($AVZC, 1) <> FileGetSize(@ScriptDir & '\avz.zip') Then _H_AVZ() EndIf RunWait(@TempDir & '\7z.exe x "' & @ScriptDir & '\avz.zip" "-aoa"', @ScriptDir, @SW_HIDE) FileDelete(@ScriptDir & '\avz.zip') EndFunc ;==>_H_AVZ Func _H_Hijack() ;Переменные для HijackThis Global $HGetH = StringRegExp(BinaryToString(InetRead('http://www.filehippo.com/download_hijackthis/', 1), 4), '(?i)[\<]title[\>]Download HijackThis\s?(.*?)\s?[\-] FileHippo[\.]com', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Получить версию утилиты HijackThis не возможено', 5) EndIf Global $hsFileName = StringRegExp(BinaryToString(InetRead('http://sourceforge.net/projects/hjt/files/' & $HGetH[0] & '/', 1), 4), 'Click to download (.*?)[\.]exe"', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для HijackThis', 5) Global $hsLastLink = '0' Else Global $hsLastLink = 'http://citylan.dl.sourceforge.net/project/hjt/' & $HGetH[0] & '/' & $hsFileName[0] & '.exe' EndIf If InetGetSize($hsLastLink, 1) <> FileGetSize(@ScriptDir & '\HijackThis.exe') Then Global $hDHi = InetGet($hsLastLink, @ScriptDir & '\HijackThis.exe', 1, 0) Do TraySetState(1) TraySetToolTip('HijackThis загружается') Until InetGetInfo($hDHi, 0) <> InetGetSize($hsLastLink, 1) InetClose($hDHi) EndIf If InetGetSize($hsLastLink, 1) <> FileGetSize(@ScriptDir & '\HijackThis.exe') Then _H_Hijack() EndIf EndFunc ;==>_H_Hijack Func _H_UVS() ;Получение версии для Universal Virus Sniffer 6 Global $HidHsVerU = StringRegExp(BinaryToString(InetRead('http://dsrt.dyndns.org/uvs.htm', 1), 4), '(?i)Universal\s.*?\sv(.*?) [\<]/font[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Получить версию утилиты Universal Virus Sniffer не возможено', 5) Global $HidHUVS = '0' Else Global $HidHUVS = $HidHsVerU[0] EndIf ; Преременные для uVS Global $HidGetUVSU = StringRegExp(BinaryToString(InetRead('http://dsrt.dyndns.org/uvsfiles.htm', 1), 4), 'uVS', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Загрузка утилиты uVS невозможна', 5) Global $HidAllLinkU = '0' Else Global $HidAllLinkU = 'http://dsrt.dyndns.org/files/' & $HidGetUVSU[0] EndIf Global $HidhFileUVS = FileOpen(@ScriptDir & '\UVS\Doc\WhatsNew.txt', 0) ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $HidhFileUVS = -1 Then Sleep(150) EndIf ; Читает по одному символу за каждый шаг цикла, пока не будет достигнут конец файла EOF Global $HidsCharsClear = FileReadLine($HidhFileUVS, 2) Global $HidsChars = StringRegExp($HidsCharsClear, '(?i)([^\s].*)', 3) If @error Then Global $HidsCharsEdit = '0' Else Global $HidsCharsEdit = $HidsChars[0] EndIf FileClose($HidhFileUVS) If $HidsCharsEdit <> $HidHUVS Then Global $HidhDUv = InetGet($HidAllLinkU, @ScriptDir & '\uvs.zip', 1, 1) Do TraySetState(1) TraySetToolTip('Universal Virus Sniffer загружается') Until InetGetInfo($HidhDUv, 2) = True InetClose($HidhDUv) If InetGetSize($HidAllLinkU, 1) <> FileGetSize(@ScriptDir & '\uvs.zip') Then _H_UVS() EndIf RunWait(@TempDir & '\7z.exe x "' & @ScriptDir & '\uvs.zip" "-o' & @ScriptDir & '\UVS" "-aoa"', @ScriptDir, @SW_HIDE) FileDelete(@ScriptDir & '\uvs.zip') EndIf EndFunc ;==>_H_UVS Func _H_MUVS() If $HidsCharsEdit <> $HidHUVS Then Global $HidhDUvB = InetGet('http://dsrt.dyndns.org/files/MAIN.zip', @ScriptDir & '\MAIN.zip', 1, 1) Do TraySetState(1) TraySetToolTip('Universal Virus Sniffer загружается') Until InetGetInfo($HidhDUvB, 2) = True InetClose($HidhDUvB) If InetGetSize('http://dsrt.dyndns.org/files/MAIN.zip', 1) <> FileGetSize(@ScriptDir & '\MAIN.zip') Then _H_MUVS() EndIf RunWait(@TempDir & '\7z.exe x "' & @ScriptDir & '\MAIN.zip" "-o' & @ScriptDir & '\UVS\SHA" "-aoa"', @ScriptDir, @SW_HIDE) FileDelete(@ScriptDir & '\MAIN.zip') Else Return EndIf EndFunc ;==>_H_MUVS Func _H_Gmer() ;Получение версии для GMER 7 Local $HsVerG = StringRegExp(BinaryToString(InetRead('http://www.gmer.net/', 1), 4), '(?i)The latest.*GMER (.*?)[\<]/STRONG[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Получить версию утилиты GMER не возможено', 5) Local $sResultHGMER = '0' Else Local $sPattern = '[\,\s+]' Local $sResultHGMER = StringRegExpReplace($HsVerG[0], $sPattern, '[\.]') EndIf If InetGetSize('http://www2.gmer.net/gmer.zip', 1) > 0 Then Local $sPattern = '\,\s+' Local $sResultfgVerGMER = StringRegExpReplace(FileGetVersion(@ScriptDir & '\gmer.exe', 'FileVersion'), $sPattern, '\.') EndIf If $sResultHGMER <> $sResultfgVerGMER Then Global $hDG = InetGet('http://www2.gmer.net/gmer.zip', @ScriptDir & '\gmer.zip', 1, 0) Do TraySetState(1) TraySetToolTip('GMER загружается') Until InetGetInfo($hDG, 0) <> InetGetSize('http://www2.gmer.net/gmer.zip', 1) InetClose($hDG) If InetGetSize('http://www2.gmer.net/gmer.zip', 1) <> FileGetSize(@ScriptDir & '\gmer.zip') Then _H_Gmer() EndIf RunWait(@TempDir & '\7z.exe x "' & @ScriptDir & '\gmer.zip" "-aoa"', @ScriptDir, @SW_HIDE) FileDelete(@ScriptDir & '\gmer.zip') Else Return EndIf EndFunc ;==>_H_Gmer Func _H_Mc() If @OSArch = "X64" Then ;Переменные для McAfee Global $sVerMcC = StringRegExp(BinaryToString(InetRead('http://downloadcenter.mcafee.com/products/mcafee-avert/stinger/', 1), 4), '(?i)[\<]IMG.*HREF[\=]"(.*?)"[\>]stinger64[\.]exe[\<]/A[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Загрузка утилиты McAfee невозможна', 5) Global $LinkMcC = '0' Else Global $LastMcC = $sVerMcC[UBound($sVerMcC) - 1] Global $LinkMcC = 'http://downloadcenter.mcafee.com/products/mcafee-avert/stinger/' & $LastMcC EndIf Else ;Переменные для McAfee Global $sVerMcC = StringRegExp(BinaryToString(InetRead('http://downloadcenter.mcafee.com/products/mcafee-avert/stinger/', 1), 4), '(?i)[\<]IMG.*HREF[\=]"(.*?)"[\>]stinger32[\.]exe[\<]/A[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Загрузка утилиты McAfee невозможна', 5) Global $LinkMcC = '0' Else Global $LastMcC = $sVerMcC[UBound($sVerMcC) - 1] Global $LinkMcC = 'http://downloadcenter.mcafee.com/products/mcafee-avert/stinger/' & $LastMcC EndIf EndIf If FileGetSize(@ScriptDir & '\' & $LastMcC) <> InetGetSize($LinkMcC, 1) Then Global $hDM = InetGet($LinkMcC, @ScriptDir & '\' & StringRegExpReplace($LastMcC, '\d', ''), 1, 1) Do TraySetState(1) TraySetToolTip('McAfee AVERT Stinger загружается') Until InetGetInfo($hDM, 2) = True InetClose($hDM) EndIf If InetGetSize($LinkMcC, 1) <> FileGetSize(@ScriptDir & '\' & StringRegExpReplace($LastMcC, '\d', '')) Then _H_Mc() EndIf EndFunc ;==>_H_Mc Func _H_CC() ;Получение адреса для COMODO Cleaning Essentials х32 Global $HidGetAdrCOAdrC = StringRegExp(BinaryToString(InetRead('http://www.comodo.com/business-security/network-protection/cleaning_essentials.php', 1), 4), '(?i)"href[\_]vxp[\_]32"[\:]"(.*?)"', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Загрузка утилиты COMODO CE х32 невозможна', 5) Global $HidCOFulAdrC = '0' Else Global $HidCOFulAdrC = $HidGetAdrCOAdrC[0] EndIf ;Получение адреса для COMODO Cleaning Essentials X64 Global $HidGetAdrCO2C = StringRegExp(BinaryToString(InetRead('http://www.comodo.com/business-security/network-protection/cleaning_essentials.php', 1), 4), '(?i)"href[\_]vxp[\_]64"[\:]"(.*?)"', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Загрузка утилиты COMODO CE х64 невозможна', 5) Global $HidCOFulAdr2C = '0' Else Global $HidCOFulAdr2C = $HidGetAdrCO2C[0] EndIf If @OSArch = 'x64' Then Global $HidDownComodoSC = $HidCOFulAdr2C Else Global $HidDownComodoSC = $HidCOFulAdrC EndIf ;Получение версии для COMODO Cleaning Essentials 9 Global $HidCGetAdrCO = StringRegExp(BinaryToString(InetRead('http://www.comodo.com/business-security/network-protection/cleaning_essentials.php', 1), 4), '(?i)"href_vxp_32"[\:]"http[\:]//download[\.]comodo[\.]com/cce/download/setups/cce_(.*?)_x32', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Получить версию утилиты COMODO CE не возможено', 5) Global $HidCCOFulV = '0' Else Global $HidCCOFulV = $HidCGetAdrCO[0] EndIf Global $HidfVerCom = FileGetVersion(@ScriptDir & '\CCE\CCE.exe', 'FileVersion') If $HidfVerCom <> $HidCCOFulV Then Global $HidhDC = InetGet($HidDownComodoSC, @ScriptDir & '\CCE.zip', 1, 1) Do TraySetState(1) TraySetToolTip('Comodo Cleaning Essentials загружается') Until InetGetInfo($HidhDC, 2) = True InetClose($HidhDC) If InetGetSize($HidDownComodoSC, 1) <> FileGetSize(@ScriptDir & '\CCE.zip') Then _H_CC() EndIf RunWait(@TempDir & '\7z.exe x "' & @ScriptDir & '\CCE.zip" "-aoa"', @ScriptDir, @SW_HIDE) ; Записывает значение. FileOpen(@ScriptDir & '\CCE\Data\CCE\config.ini', 10) IniWrite(@ScriptDir & '\CCE\Data\CCE\config.ini', "option", "AutorunsLanguageId", "1049") IniWrite(@ScriptDir & '\CCE\Data\CCE\config.ini', "option", "ThemeName", "COMODO NormalColor NormalSize") IniWrite(@ScriptDir & '\CCE\Data\CCE\config.ini', "option", "CCELanguageId", "1049") IniWrite(@ScriptDir & '\CCE\Data\CCE\config.ini', "option", "KillSwitchLanguageId", "1049") FileClose(@ScriptDir & '\CCE\Data\CCE\config.ini') FileDelete(@ScriptDir & '\CCE\Translations\Autoruns.Chinese.lang') FileDelete(@ScriptDir & '\CCE\Translations\CCE.Chinese.lang') FileDelete(@ScriptDir & '\CCE\Translations\FileExplorer.Chinese.lang') FileDelete(@ScriptDir & '\CCE\Translations\KillSwitch.Chinese.lang') FileDelete(@ScriptDir & '\CCE\EULA.txt') FileDelete(@ScriptDir & '\CCE.zip') EndIf EndFunc ;==>_H_CC Func _H_Emi() If FileExists(@ScriptDir & '\EEKit\Run\a2emergencykit.exe') Then Local $C3ver = FileGetVersion(@ScriptDir & '\EEKit\Run\a2emergencykit.exe', 'FileVersion') Local $CHTMLEKitVer = InetRead('http://www.emsisoft.com/en/software/eek/') Local $CHTMLEKitVerB = BinaryToString($CHTMLEKitVer, 4) Local $CGetAdrEKitVer = StringRegExp($CHTMLEKitVerB, '(?si)[\<]span[\>]Version.\s+(.*?)\s+', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Доступ к утилите Emsisoft Emergency Kit не возможен', 5) Local $CEKitFulVVer = '0' Else Local $CEKitFulVVer = $CGetAdrEKitVer[0] EndIf If $C3ver = $CEKitFulVVer Then Return EndIf EndIf ;Получение адреса для Emsisoft Emergency Kit Global $EEKitFAdrE = 'http://download11.emsisoft.com/EmsisoftEmergencyKit.zip' Global $hDE = InetGet($EEKitFAdrE, @ScriptDir & '\EEKit.zip', 1, 1) Do TraySetState(1) TraySetToolTip('Emsisoft Emergency Kit загружается') Until InetGetInfo($hDE, 2) = True InetClose($hDE) If InetGetSize($EEKitFAdrE, 1) <> FileGetSize(@ScriptDir & '\EEKit.zip') Then _H_Emi() EndIf RunWait(@TempDir & '\7z.exe x "' & @ScriptDir & '\EEKit.zip" "-o' & @ScriptDir & '\EEKit" "-aoa"', @ScriptDir, @SW_HIDE) FileDelete(@ScriptDir & '\EEKit.zip') ; Записывает значение. FileOpen(@ScriptDir & '\EEKit\Run\a2settings.ini', 10) IniWrite(@ScriptDir & '\EEKit\Run\a2settings.ini', "General", "Revision", "1") IniWrite(@ScriptDir & '\EEKit\Run\a2settings.ini', "General", "Language", "ru-ru") IniWrite(@ScriptDir & '\EEKit\Run\a2settings.ini', "General", "SectionsCount", "26") FileClose(@ScriptDir & '\EEKit\Run\a2settings.ini') ;Удаление лишнего FileDelete(@ScriptDir & '\EEKit\Run\Languages\ar-sa.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\bg-bg.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\ca-es.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\cn-cn.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\cz-cz.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\de-de.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\en-us.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\es-es.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\fa-ir.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\fi-fi.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\fr-fr.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\gr-gr.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\hr-hr.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\hu-hu.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\it-it.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\ja-jp.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\nl-nl.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\pl-pl.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\pt-br.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\sl-si.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\sr-sp.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\sv-se.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\tr-tr.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\ua-ua.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\vi-vn.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\zh-tw.lng') EndFunc ;==>_H_Emi Func _H_VT() ;Переменные для VirusTotal Uploader Global $GetAdrVUploaderC = StringRegExp(BinaryToString(InetRead('https://www.virustotal.com/documentation/desktop-applications/', 1), 4), '(?si)[\<]a.*href="/static/bin/(.*?)"[\>].\s+Install VirusTotal Uploader[\<]/a[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'VirusTotal Uploader недоступен', 5) Global $VUploaderFulAdrC = '0' Else Global $VUploaderFulAdrC = 'https://www.virustotal.com/static/bin/' & $GetAdrVUploaderC[0] EndIf ;Переменные для загрузки имени VirusTotal Uploader Global $GetAdrVUploaderNC = StringRegExp(BinaryToString(InetRead('https://www.virustotal.com/documentation/desktop-applications/', 1), 4), '(?si)[\<]a.*href="/static/bin/(.*?)"[\>].\s+Install VirusTotal Uploader[\<]/a[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'VirusTotal Uploader недоступен', 5) Global $VUploaderFulAdrNC = '0' Else Global $VUploaderFulAdrNC = $GetAdrVUploaderNC[0] EndIf ;Переменные для имени распаковки VirusTotal Uploader Global $GetAdrVUploaderFC = StringRegExp(BinaryToString(InetRead('https://www.virustotal.com/documentation/desktop-applications/', 1), 4), '(?i)C[\:][\\]path[\\]to[\\]vt[\\]uploader[\\](.*?)\s+', 3) If @error Then MsgBox(48 + 262144, 'Error', 'VUploaderF недоступен', 5) Global $VUploaderFC = '0' Else Global $VUploaderFC = $GetAdrVUploaderFC[0] EndIf If FileExists(@ScriptDir & '\VirusTotalUpload2.exe') Then Return Else Global $hDV = InetGet($VUploaderFulAdrC, @TempDir & '\' & $VUploaderFulAdrNC, 1, 1) Do TraySetState(1) TraySetToolTip('VirusTotal Uploader загружается') Until InetGetInfo($hDV, 2) = True InetClose($hDV) If InetGetSize($VUploaderFulAdrC, 1) <> FileGetSize(@TempDir & '\' & $VUploaderFulAdrNC) Then _H_VT() EndIf EndIf RunWait(@TempDir & '\7z.exe x "' & @TempDir & '\' & $VUploaderFulAdrNC & '" "-o' & @ScriptDir & '" "*.exe" "-aoa"', @TempDir, @SW_HIDE) EndFunc ;==>_H_VT Func _H_Hit() ;Получение адреса для Hitman Pro x32 Global $GetHP32H = StringRegExp(BinaryToString(InetRead('http://www.surfright.nl/en/downloads/', 1), 4), '(?si).*?32-bit.*?[\<]/td[\>].*?[\<]td align="center"[\>].*?[\<]a href="/en/hitmanpro/whatsnew"[\>].*?[\<]/a[\>].*?[\<]/td[\>].*?[\<]td align="center"[\>].*?[\<]a href="(.*?)"[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить версию Hitman Pro x32', 5) Global $HPFulDataU32H = '0' Else Global $HPFulDataU32H = $GetHP32H[0] EndIf ;Получение адреса для Hitman Pro x64 Global $GetHP64H = StringRegExp(BinaryToString(InetRead('http://www.surfright.nl/en/downloads/', 1), 4), '(?si).*?64-bit.*?[\<]/td[\>].*?[\<]td align="center"[\>].*?[\<]a href="/en/hitmanpro/whatsnew"[\>].*?[\<]/a[\>].*?[\<]/td[\>].*?[\<]td align="center"[\>].*?[\<]a href="(.*?)"[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить версию Hitman Pro x64', 5) Global $HPFulDataU64H = '0' Else Global $HPFulDataU64H = $GetHP64H[0] EndIf If @OSArch = 'x64' Then Global $DownHPSH = $HPFulDataU64H Else Global $DownHPSH = $HPFulDataU32H EndIf ;Получение имени для Hitman Pro Global $GetNameHP = StringRegExp(BinaryToString(InetRead('http://www.surfright.nl/en/downloads/', 1), 4), '(?i)[\<]a href[\=][\"]http[\:]//dl[\.]surfright[\.]nl/(.*?)[\"][\>]HitmanPro', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Доступ к утилите Hitman Pro не возможен', 5) Global $NHPro = '0' Else Global $NHPro = $GetNameHP[0] EndIf Global $HitmanProVersion = StringRegExp(BinaryToString(InetRead('http://www.surfright.nl/en/downloads/', 1), 4), '(?i)\d+[\.]\d+[\.]\d+[\.]\d+', 1) If Not IsArray($HitmanProVersion) Then MsgBox(48 + 262144, 'Error', 'Невозможно получить версию для HitmanPro', 5) EndIf If FileGetVersion(@ScriptDir & '\HitmanPro.exe') = $HitmanProVersion[0] Then Return Else Global $hDHP = InetGet($DownHPSH, @ScriptDir & '\' & $NHPro, 1, 1) Do TraySetState(1) TraySetToolTip('Hitman Pro загружается') Until InetGetInfo($hDHP, 2) = True InetClose($hDHP) If InetGetSize($DownHPSH, 1) <> FileGetSize(@ScriptDir & '\' & $NHPro) Then _H_Hit() EndIf EndIf EndFunc ;==>_H_Hit Func _H_Combo() ;Получение адреса для ComboFix Global $GetCBFAdrC = StringRegExp(BinaryToString(InetRead('http://www.bleepingcomputer.com/download/combofix/dl/12/'), 4), 'please click here', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить версию ComboFix', 5) Global $CBFFulAdrC = '0' Else Global $CBFFulAdrC = $GetCBFAdrC[0] EndIf If FileGetSize(@ScriptDir & '\ComboFix.exe') = InetGetSize($CBFFulAdrC, 1) Then Return Else Global $hDCF = InetGet($CBFFulAdrC, @ScriptDir & '\ComboFix.exe', 1, 1) Do TraySetState(1) TraySetToolTip('ComboFix загружается') Until InetGetInfo($hDCF, 2) = True InetClose($hDCF) If InetGetSize($CBFFulAdrC, 1) <> FileGetSize(@ScriptDir & '\ComboFix.exe') Then _H_Combo() EndIf EndIf EndFunc ;==>_H_Combo Func _H_AnVir() Global $AdrAnvirTMC = 'http://www.anvir.net/downloads/anvirrus.zip' Global $HidInetSizeAnVirTM = InetGetSize('http://www.anvir.net/downloads/anvirrus.zip') ;Получение версии для AnVir Task Manager Global $HidGetATM = StringRegExp(BinaryToString(InetRead('http://www.comss.ru/page.php?id=854', 1), 4), '(?si)[\<]title[\>]AnVir Task Manager\s(.*?)\s', 1) If @error Then MsgBox(48 + 262144, 'Error', 'Получить версию утилиты AnVir Task Manager невозможно', 5) Global $HidAnverSTR3 = '0' Else Global $HidAnverSTR3 = $HidGetATM[0] EndIf ;Получение версии для файла AnVir Task Manager If FileExists(@ScriptDir & '\AnVir Task Manager\AnVir.exe') Then Local $HidAnver = FileGetVersion(@ScriptDir & '\AnVir Task Manager\AnVir.exe', 'FileVersion') Else Local $HidAnver = '0.0.0' EndIf Local $HidAnverSTR = StringRegExp($HidAnver, '(?i)\d+\.\d+\.\d+', 1) If @error Then Local $HidAnverSTR2 = '0' Else Local $HidAnverSTR2 = $HidAnverSTR[0] EndIf If FileGetSize(@ScriptDir & '\anvirrus.zip') = $HidInetSizeAnVirTM Then MFUnPackAnVirTM() EndIf If $HidAnverSTR3 = $HidAnverSTR2 Then Return Else Global $hDownloadATMC = InetGet($AdrAnvirTMC, @ScriptDir & '\anvirrus.zip', 1, 1) Do TraySetState(1) TraySetToolTip('AnVir Task Manager загружается') Until InetGetInfo($hDownloadATMC, 2) = True InetClose($hDownloadATMC) If InetGetSize($AdrAnvirTMC, 1) <> FileGetSize(@ScriptDir & '\anvirrus.zip') Then _H_AnVir() EndIf RunWait(@TempDir & '\7z.exe x "' & @ScriptDir & '\anvirrus.zip" "-o' & @ScriptDir & '\AnVir Task Manager" "-aoa"', @ScriptDir, @SW_HIDE) FileDelete(@ScriptDir & '\anvirrus.zip') EndIf EndFunc ;==>_H_AnVir ;*****Функции командной строки ;;;;;;;;;;;;;;;;;;;;;Переключение раскладки клавиатуры _WinAPI_LoadKeyboardLayoutEx(0x0409) Func _WinAPI_LoadKeyboardLayoutEx($sLayoutID = 0x0409, $hWnd = 0) Local Const $WM_INPUTLANGCHANGEREQUEST = 0x50 Local $aRet = DllCall("user32.dll", "long", "LoadKeyboardLayoutW", "wstr", Hex($sLayoutID, 8), "int", 0) If Not @error And $aRet[0] Then If $hWnd = 0 Then $hWnd = WinGetHandle(AutoItWinGetTitle()) EndIf DllCall("user32.dll", "ptr", "SendMessage", "hwnd", $hWnd, "int", $WM_INPUTLANGCHANGEREQUEST, "int", 1, "int", $aRet[0]) Return 1 EndIf Return SetError(1) EndFunc ;==>_WinAPI_LoadKeyboardLayoutEx ;;;;;;;;;;;;;;;;;;;;;Переключение раскладки клавиатуры ;;;;;;;;;;;;;;;;;;;;;;;;Проверка количества запущеных копий Func _Singleton($sOccurenceName, $iFlag = 0) Local Const $ERROR_ALREADY_EXISTS = 183 Local Const $SECURITY_DESCRIPTOR_REVISION = 1 Local $tSecurityAttributes = 0 If BitAND($iFlag, 2) Then ; The size of SECURITY_DESCRIPTOR is 20 bytes. We just ; need a block of memory the right size, we aren't going to ; access any members directly so it's not important what ; the members are, just that the total size is correct. Local $tSecurityDescriptor = DllStructCreate("byte;byte;word;ptr[4]") ; Initialize the security descriptor. Local $aRet = DllCall("advapi32.dll", "bool", "InitializeSecurityDescriptor", _ "struct*", $tSecurityDescriptor, "dword", $SECURITY_DESCRIPTOR_REVISION) If @error Then Return SetError(@error, @extended, 0) If $aRet[0] Then ; Add the NULL DACL specifying access to everybody. $aRet = DllCall("advapi32.dll", "bool", "SetSecurityDescriptorDacl", _ "struct*", $tSecurityDescriptor, "bool", 1, "ptr", 0, "bool", 0) If @error Then Return SetError(@error, @extended, 0) If $aRet[0] Then ; Create a SECURITY_ATTRIBUTES structure. $tSecurityAttributes = DllStructCreate($tagSECURITY_ATTRIBUTES) ; Assign the members. DllStructSetData($tSecurityAttributes, 1, DllStructGetSize($tSecurityAttributes)) DllStructSetData($tSecurityAttributes, 2, DllStructGetPtr($tSecurityDescriptor)) DllStructSetData($tSecurityAttributes, 3, 0) EndIf EndIf EndIf Local $handle = DllCall("kernel32.dll", "handle", "CreateMutexW", "struct*", $tSecurityAttributes, "bool", 1, "wstr", $sOccurenceName) If @error Then Return SetError(@error, @extended, 0) Local $lastError = DllCall("kernel32.dll", "dword", "GetLastError") If @error Then Return SetError(@error, @extended, 0) If $lastError[0] = $ERROR_ALREADY_EXISTS Then If BitAND($iFlag, 1) Then Return SetError($lastError[0], $lastError[0], 0) Else Exit -1 EndIf EndIf Return $handle[0] EndFunc ;==>_Singleton Global Const $sProName = @ScriptName Global Const $sProNameWS = StringStripWS($sProName, 8) Global Const $sProVerNo = '8.0.0.17' Global Const $sProVer = 'v' & $sProVerNo Global Const $sProNameVer = $sProName & ' ' & $sProVer Global Const $sProIDText = $sProNameVer & ' [ID] ' & $sProNameVer If Not _Singleton($sProName, 1) Then MFProExit() EndIf ;;;;;;;;;;;;;;;;;;;;;;;;Проверка количества запущеных копий ;******************************************************************************************************Проверка соединения Global $iPing = Ping("www.google.ru", 4000) Global $PIP = StringRegExp(BinaryToString(InetRead('http://2ip.ru/', 1), 4), '(?is)Ваш IP адрес[\:].\s+[\<]/span[\>] [\<]big id[\=]"d[\_]clip[\_]button"[\>](.*?)[\<]/big[\>]', 3) If @error Then Global $PublicIP = '0' Else Local $PublicIP = $PIP[0] EndIf If $PublicIP = 0 And $iPing = 0 Then TrayTip("Ошибка!", "Соединение с интернет не обнаружено, завершаю работу.", 3, 3) MsgBox(16 + 262144, 'Error', "Соединение с интернет отсутствует!", 5) ;Запись результата $file = FileOpen(@ScriptDir & '\logdown.log', 1) ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) EndIf FileWriteLine($file, '****************************************') FileWriteLine($file, 'Соединение с интернет отсутствует! Работа невозможна! ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN) FileWriteLine($file, '****************************************') FileClose($file) Exit EndIf ;******************************************************************************************************Проверка соединения ;******************************************************************************************************Лог запуска утилиты MFLog() ;******************************************************************************************************Лог запуска утилиты ;**************************************************Проверка версий программ Func _VersionCompare($sVersion1, $sVersion2) If $sVersion1 = $sVersion2 Then Return 0 Local $sep = "." If StringInStr($sVersion1, $sep) = 0 Then $sep = "," Local $aVersion1 = StringSplit($sVersion1, $sep) Local $aVersion2 = StringSplit($sVersion2, $sep) If UBound($aVersion1) <> UBound($aVersion2) Or UBound($aVersion1) = 0 Then ; Compare as strings SetExtended(1) If $sVersion1 > $sVersion2 Then Return 1 ElseIf $sVersion1 < $sVersion2 Then Return -1 EndIf Else For $i = 1 To UBound($aVersion1) - 1 ; Compare this segment as numbers If StringIsDigit($aVersion1[$i]) And StringIsDigit($aVersion2[$i]) Then If Number($aVersion1[$i]) > Number($aVersion2[$i]) Then Return 1 ElseIf Number($aVersion1[$i]) < Number($aVersion2[$i]) Then Return -1 EndIf Else ; Compare the segment as strings SetExtended(1) If $aVersion1[$i] > $aVersion2[$i] Then Return 1 ElseIf $aVersion1[$i] < $aVersion2[$i] Then Return -1 EndIf EndIf Next EndIf ; This point should never be reached Return SetError(2, 0, 0) EndFunc ;==>_VersionCompare Global $verVersNNM = StringRegExp(BinaryToString(InetRead('http://nnm-club.me/forum/viewtopic.php?t=529054&sid=1622a370a86e36fec215672c8225e637', 1), 4), '(?:[\<]meta.*desc.*\s+cont.*\s+)(.*?)\s+[\[]', 3) If @error Then Global $verNowVers = '0' Else Global $verNowVers = $verVersNNM[0] EndIf Global $sysVerFile = FileGetVersion(@ScriptDir & '\' & @ScriptName, 'Fileversion') $hVersionS = _VersionCompare($sysVerFile, $verNowVers) If $hVersionS = -1 Then MsgBox(64 + 262144, '', 'Версия используемой программы = ' & $sysVerFile & @LF & 'Версия доступная для загрузки = ' & $verNowVers, 5) EndIf ;**************************************************Проверка версий программ ;******************************************************************************************************Проверка свободного пространства Global $var = DriveSpaceFree(@ScriptDir) Global $dscM = 'На носителе, где расположен скрипт,' & @LF & 'меньше 500 МБ свободного пространства.' & @LF & _ 'Если Вам необходимо загрузить' & @LF & 'все утилиты, то потребуется' & @LF & 'объем свободного пространства' _ & @LF & ' больее 250 МБ' & @LF & 'Для коректной работы' & @LF & 'завершите работу скрипта' & @LF & 'нажатием клавиши Esc' _ & @LF & 'и переместите его на носитель' & @LF & 'с объемом более 250 МБ' & @LF & 'Или освободите пространство' & @LF & 'до требуемого размера' ;******************************************************************************************************Проверка свободного пространства ;Построение прогресса загрузки Global $hProgress = GUICreate('0', 175, 400, -1, -1, $WS_SYSMENU) Global $iProgress = GUICtrlCreateProgress(-1, -1, 170, 368, 4) GUISetState(@SW_SHOW, $hProgress) ;Процент загрузки GUICtrlSetData($iProgress, 1) ; WinSetTitle($hProgress, '', '1 %') ; ;;;;;;;;;;;;;;;;;;;;;Переменные для версий программ и дисков ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Получение версий LiveCD ;Получение версии для Dr.Web LiveUSB Global $GetDrUSB = StringRegExp(BinaryToString(InetRead('http://download.geo.drweb.com/pub/drweb/liveusb/win/', 1), 4), '(?i)[\<]a href[\=]"drwebliveusb[\.]exe"[\>]drwebliveusb[\.]exe[\<]/a[\>]\s+(.*?)\s.*', 3) If Not IsArray($GetDrUSB) Then MsgBox(48 + 262144, 'Error', 'Невозможно получить версию диска Dr.Web LiveUSB', 5) Global $DrFulDataU = '0' Else Global $DrFulDataU = 'Версия Dr.Web LiveUSB от ' & $GetDrUSB[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 2) ; WinSetTitle($hProgress, '', '2 %') ; ;Получение версии для Dr.Web LiveCD Global $GetDrLCD = StringRegExp(BinaryToString(InetRead('http://download.geo.drweb.com/pub/drweb/livecd/', 1), 4), '(?si)[\<]a href[\=]"drweb[\-]livecd[\-]\d+[\.]iso"[\>]drweb-livecd-\d+[\.]iso[\<]/a[\>]\s+(.*?)\s.*', 3) If Not IsArray($GetDrLCD) Then MsgBox(48 + 262144, 'Error', 'Невозможно получить версию диска Dr.Web LiveCD', 5) Global $DrFulDataC = '0' Else Global $DrFulDataC = 'Версия Dr.Web LiveCD от ' & $GetDrLCD[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 3) ; WinSetTitle($hProgress, '', '3 %') ; ;Получение версии для Kaspersky Rescue Disk Global $GetAdrK = StringRegExp(BinaryToString(InetRead('http://support.kaspersky.com/viruses/rescuedisk/main', 1), 4), '(?i)\d+[\.]\d+[\.]\d+[\.]\d+', 3) If Not IsArray($GetAdrK) Then MsgBox(48 + 262144, 'Error', 'Невозможно получить версию диска Kaspersky Rescue Disk', 5) Global $KFulAdrV = '0' Else Global $KFulAdrV = 'Версия Kaspersky Rescue Disk ' & $GetAdrK[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 4) ; WinSetTitle($hProgress, '', '4 %') ; ;Получение версии для Avira AntiVir Rescue System Global $GetAdrA = StringRegExp(BinaryToString(InetRead('http://www.avira.com/ru/download/product/avira-antivir-rescue-system', 1), 4), '(?i)\(\d+\s?.*?\.\s?\d+\s?.*?)\<', 3) If Not IsArray($GetAdrA) Then MsgBox(48 + 262144, 'Error', 'Невозможно получить версию диска Avira AntiVir RD', 5) Global $AFulAdr = '0' Else Global $AFulAdr = 'Версия Avira AntiVir Rescue System от ' & $GetAdrA[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 5) ; WinSetTitle($hProgress, '', '5 %') ; ;Получение версии для LiveCD ESET NOD32 Global $NODFulAdr = 'Версия ESET NOD32 LiveCD от ' & @MDAY & '-' & @MON & '-' & @YEAR ;Процент загрузки GUICtrlSetData($iProgress, 6) ; WinSetTitle($hProgress, '', '6 %') ; ;Получение версии для BitDefenderRescueCD Global $GetAdrBitDef = StringRegExp(BinaryToString(InetRead('http://download.bitdefender.com/rescue_cd/', 1), 4), '(?si)[\<]a href[\=][\"]BitDefenderRescueCD[\_]v(.*?)[\.]iso">BitDefenderRescueCD.*', 3) If Not IsArray($GetAdrBitDef) Then MsgBox(48 + 262144, 'Error', 'Невозможно получить версию диска BitDefender RD', 5) Global $BitDefFulAdr = '0' Else Global $BitDefEditAdr = 'Версия BitDefenderRescueCD ' & $GetAdrBitDef[0] Global $BitDefFulAdr = StringRegExpReplace($BitDefEditAdr, '\_', '\.') EndIf ;Процент загрузки GUICtrlSetData($iProgress, 7) ; WinSetTitle($hProgress, '', '7 %') ; ;Получение версии для Trend Micro Rescue Disk Global $TrendFulAdr = 'Версия Trend Micro Rescue Disk от ' & @MDAY & '-' & @MON & '-' & @YEAR ;Процент загрузки GUICtrlSetData($iProgress, 8) ; WinSetTitle($hProgress, '', '8 %') ; ;Получение версии для eScan LiveCD Global $eScanFulAdrV = 'Версия eScan LiveCD от ' & @MDAY & '-' & @MON & '-' & @YEAR ;Процент загрузки GUICtrlSetData($iProgress, 9) ; WinSetTitle($hProgress, '', '9 %') ; ;Получение версии для Comodo Rescue Disk Global $GetAdrCOCDV = StringRegExp(BinaryToString(InetRead('http://www.comodo.com/business-security/network-protection/rescue-disk.php', 1), 4), '(?i)[\][\<]/td[\>][\<]td class=.*[\>](.*?)[\<]/td[\>][\<]td class=.*[\>]iso', 3) If Not IsArray($GetAVGLCDV) Then MsgBox(48 + 262144, 'Error', 'Невозможно получить версию диска AVG Rescue CD', 5) Global $AVGFulV = '0' Else Global $AVGFulV = 'Версия AVG ' & $GetAVGLCDV[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 11) ; WinSetTitle($hProgress, '', '11 %') ; ;Получение версии для TrustPort LiveCD Global $TPFulAdrV = 'Версия TrustPort LiveCD от ' & @MDAY & '-' & @MON & '-' & @YEAR ;Процент загрузки GUICtrlSetData($iProgress, 12) ; WinSetTitle($hProgress, '', '12 %') ; ;Получение версии для VBA32 Rescue Global $VBAFulDataU = 'Версия VBA32 Rescue от ' & @MDAY & '-' & @MON & '-' & @YEAR ;Процент загрузки GUICtrlSetData($iProgress, 13) ; WinSetTitle($hProgress, '', '13 %') ; ;Получение версии для AntiSMS Global $GetSMS = StringRegExp(BinaryToString(InetRead('https://forum.simplix.ks.ua/viewtopic.php?id=399', 3), 4), '(?is)(AntiSMS\s?\d+?\.?(?:\d+?|\<))', 3) If Not IsArray($GetSMS) Then MsgBox(48 + 262144, 'Error', 'Невозможно получить версию диска AntiSMS', 5) Global $SMSFulDataU = '0' Else Global $SMSFulDataU = 'Версия AntiSMS ' & $GetSMS[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 14) ; WinSetTitle($hProgress, '', '14 %') ; ; Получение версии для PC Tools AOSS LiveCD Global $sLinkP = StringRegExp(BinaryToString(InetRead('http://www.pctools.com/aoss/details/', 1), 4), '(?i)[\<]b[\>]Current Version[\:][\<]/b[\>][\<]/td[\>][\<]td valign[\=]"top"[\>](.*?)[\<]/td[\>][\<]/tr[\>]', 3) If Not IsArray($sLinkP) Then MsgBox(48 + 262144, 'Error', 'Невозможно получить версию для PC Tools AOSS LiveCD', 5) Global $mFileNameP = '0' Else Global $mFileNameP = 'Версия PC Tools AOSS LiveCD ' & $sLinkP[0] EndIf ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Получение версий LiveCD ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Переменные для LiveCD ;Процент загрузки GUICtrlSetData($iProgress, 15) ; WinSetTitle($hProgress, '', '15 %') ; ;Переменные для Dr.Web LiveCD Global $GetDrLCD = StringRegExp(BinaryToString(InetRead('http://download.geo.drweb.com/pub/drweb/livecd/', 1), 4), '(?i)[\<]a href[\=][\"](.*?)">drweb-livecd-\d+[\.]iso', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для Dr.Web LiveCD', 5) Global $DrFulAdr = '0' Else Global $DrFulAdr = 'http://download.geo.drweb.com/pub/drweb/livecd/' & $GetDrLCD[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 16) ; WinSetTitle($hProgress, '', '16 %') ; ;Переменные для Dr.Web LiveUSB Global $GetDrLCD2 = StringRegExp(BinaryToString(InetRead('http://download.geo.drweb.com/pub/drweb/liveusb/win/', 1), 4), '(?i)[\<]a href[\=]"drwebliveusb[\.]exe"[\>](.*?)[\<]/a[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для Dr.Web LiveUSB', 5) Global $DrFulAdr2 = '0' Else Global $DrFulAdr2 = 'http://download.geo.drweb.com/pub/drweb/liveusb/win/' & $GetDrLCD2[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 17) ; WinSetTitle($hProgress, '', '17 %') ; ;Переменные для Kaspersky Rescue Disk Global $GetNameKLCD = StringRegExp(BinaryToString(InetRead('http://support.kaspersky.com/viruses/rescuedisk/main', 1), 4), '(?i)href[\=]"(.*?)"[\>]Distributive', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для Kaspersky RD', 5) Global $KFulAdr = '0' Else Global $KFulAdr = $GetNameKLCD[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 18) ; WinSetTitle($hProgress, '', '18 %') ; ;Переменные для Avira AntiVir Rescue System Global $AviraFulAdr = 'http://professional.avira-update.com/package/rescue_system/common/en/rescue_system-common-en.iso' ;Процент загрузки GUICtrlSetData($iProgress, 19) ; WinSetTitle($hProgress, '', '19 %') ; ;Переменные для LiveCD ESET NOD32 Global $ESETFulAdr = 'http://esetsupport.ru/eset_sysrescue.iso' ;Процент загрузки GUICtrlSetData($iProgress, 20) ; WinSetTitle($hProgress, '', '20 %') ; ;Переменные для BitDefenderRescueCD Global $GetAdrBit = StringRegExp(BinaryToString(InetRead('http://download.bitdefender.com/rescue_cd/', 1), 4), '(?i)[\<]a href[\=][\"](.*?)[\"][\>]BitDefenderRescueCD', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для BitDefender RD', 5) Global $BitFulAdr = '0' Else Global $BitFulAdr = 'http://download.bitdefender.com/rescue_cd/' & $GetAdrBit[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 21) ; WinSetTitle($hProgress, '', '21 %') ; ;Процент загрузки GUICtrlSetData($iProgress, 22) ; WinSetTitle($hProgress, '', '22 %') ; ;Получение адреса для Comodo Rescue Disk Global $GetAdrCOCD = StringRegExp(BinaryToString(InetRead('http://www.comodo.com/business-security/network-protection/rescue-disk.php', 1), 4), '(?i)[\<]a href[\=]"(.*?)" title[\=]"Free Download"', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для Comodo RD', 5) Global $COFAdrCD = '0' Else Global $COFAdrCD = $GetAdrCOCD[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 23) ; WinSetTitle($hProgress, '', '23 %') ; ;Получение адреса для AVG Rescue CD Global $GetAVGLCD = StringRegExp(BinaryToString(InetRead('http://www.avg.com/us-en/avg-rescue-cd-download', 1), 4), '(?i)[\<]a href="(.*?)"\sclass[\=]"clr".*?Rescue CD', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес дляAVG Rescue CD', 5) Global $AVGFul = '0' Else Global $AVGFul = $GetAVGLCD[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 24) ; WinSetTitle($hProgress, '', '24 %') ; ;Переменные для TrustPort LiveCD Global $GetNAdrTP = 'http://trustport.com.ua/file/TP_BartPE.iso' ;Получение адреса для VBA32 Rescue Global $GetVBAAdr = StringRegExp(BinaryToString(InetRead('http://anti-virus.by/download/products/', 1), 4), '(?i)[\<]td[\>][\<]a href="(.*?)"[\>][\<]b[\>]vbarescue[\.]iso[\<]/b[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для VBA32 Rescue', 5) Global $VBAFulAdr = '0' Else Global $VBAFulAdr = 'http://anti-virus.by' & $GetVBAAdr[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 25) ; WinSetTitle($hProgress, '', '25 %') ; ;Получение адреса для AntiSMS Global $GetSMSAdr = StringRegExp(BinaryToString(InetRead('https://forum.simplix.ks.ua/viewtopic.php?id=399', 3), 1), '(?is)рекомендуется неопытным пользователям.*?href\="(.*?)"', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для SMS32 Rescue', 5) Global $SMSFulAdr = '0' Else Global $SMSFulAdr = StringRegExpReplace($GetSMSAdr[0], 'http', 'https') EndIf ;Адрес для PC Tools AOSS LiveCD $DownPCT = 'http://download.pctools.com/mirror/AOSS.iso' ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Переменные для LiveCD ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Получение версий для уилит ;Процент загрузки GUICtrlSetData($iProgress, 26) ; WinSetTitle($hProgress, '', '26 %') ; ;Получение версии для Dr.Web 1 Global $GetD = StringRegExp(BinaryToString(InetRead('http://download.geo.drweb.com/pub/drweb/cureit/', 1), 4), '(?i)[\<]a href="drweb-cureit[\.]exe"[\>]drweb-cureit[\.]exe[\<]/a[\>]\s+(.*?)\s', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Получить версию утилиты Dr.Web не возможено', 5) Global $DrWeb = '0' Else Global $DrWeb = 'Версия Dr.WebCureit! от ' & $GetD[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 27) ; WinSetTitle($hProgress, '', '27 %') ; ;Получение версии для Kasper 2 Global $GetK = StringRegExp(BinaryToString(InetRead('http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool11/', 1), 4), '(?i)[\.]exe">setup_.*?_(.*?)[\.]exe', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Получить версию утилиты KasperskyAVPTool не возможено', 5) Global $Last = '0' Else Global $Last = $GetK[UBound($GetK) - 1] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 28) ; WinSetTitle($hProgress, '', '28 %') ; Global $GetK2 = StringRegExp(BinaryToString(InetRead('http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool11/', 1), 4), '(?i)[\.]exe">setup_(.*?).x.*?[\.]exe[\<]/a[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Получить версию утилиты KasperskyAVPTool не возможено', 5) Global $Kasp = '0' Else Global $Last2 = $GetK2[UBound($GetK2) - 1] Global $Kasp = 'Версия Kaspersky AVP Tool ' & $Last2 & ' от ' & $Last EndIf ;Процент загрузки GUICtrlSetData($iProgress, 29) ; WinSetTitle($hProgress, '', '29 %') ; ;Получение версии для AVZ 3 Global $GetA = StringRegExp(BinaryToString(InetRead('http://z-oleg.com/', 1), 4), '(?i)[\<]font class[\=][\"]smalltext"[\>][\:] [\<]strong[\>](.*?)[\<]/strong[\>][\<][\/]font', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Получить версию утилиты AVZ не возможено', 5) Global $AVZ = '0' Else Global $AVZ = 'Версия AVZ ' & $GetA[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 30) ; WinSetTitle($hProgress, '', '30 %') ; ;Получение версии для HijackThis 4 Global $GetH = StringRegExp(BinaryToString(InetRead('http://www.filehippo.com/download_hijackthis/', 1), 4), '(?i)[\<]title[\>]Download HijackThis\s?(.*?)\s?[\-] FileHippo[\.]com', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Получить версию утилиты HijackThis не возможено', 5) Global $Hijack = '0' Else Global $Hijack = 'Версия HijackThis ' & $GetH[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 31) ; WinSetTitle($hProgress, '', '31 %') ; ;Получение версии для Universal Virus Sniffer 6 Global $sVerU = StringRegExp(BinaryToString(InetRead('http://dsrt.dyndns.org/uvs.htm', 1), 4), '(?i)Universal\s.*?\sv(.*?) [\<]/font[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Получить версию утилиты Universal Virus Sniffer не возможено', 5) Global $UVS = '0' Else Global $UVS = 'Версия UVS ' & $sVerU[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 32) ; WinSetTitle($hProgress, '', '32 %') ; ;Получение версии для GMER 7 Global $sVerG = StringRegExp(BinaryToString(InetRead('http://www.gmer.net/', 1), 4), '(?i)The latest.*GMER (.*?)[\<]/STRONG[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Получить версию утилиты GMER не возможено', 5) Global $GMER = '0' Else Global $GMER = 'Версия GMER ' & $sVerG[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 33) ; WinSetTitle($hProgress, '', '33 %') ; ;Получение версии для McAfee 8 Global $sVerMc = StringRegExp(BinaryToString(InetRead('http://downloadcenter.mcafee.com/products/mcafee-avert/stinger/readme.txt', 1), 4), 'Build Number[\:]\s+(.*?)\r\n', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Получить версию утилиты McAfee не возможено', 5) Global $McA = '0' Else Global $LastMcV = $sVerMc[UBound($sVerMc) - 1] Global $McA = 'Версия McAfee Stinger ' & $LastMcV EndIf ;Процент загрузки GUICtrlSetData($iProgress, 34) ; WinSetTitle($hProgress, '', '34 %') ; ;Получение версии для COMODO Cleaning Essentials 9 Global $GetAdrCO = StringRegExp(BinaryToString(InetRead('http://www.comodo.com/business-security/network-protection/cleaning_essentials.php', 1), 4), '(?i)"href_vxp_32"[\:]"http[\:]//download[\.]comodo[\.]com/cce/download/setups/cce_(.*?)_x32', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Получить версию утилиты COMODO CE не возможено', 5) Global $COFulV = '0' Else Global $COFulV = 'Версия COMODO CE ' & $GetAdrCO[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 35) ; WinSetTitle($hProgress, '', '35 %') ; ;Получение версии для Emsisoft Emergency Kit 10 Global $GetAdrEKit = StringRegExp(BinaryToString(InetRead('http://www.emsisoft.com/en/software/eek/', 1), 4), '(?si)Version\s.*?\s+(.*?)[\r\n]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Получить версию утилиты Emsisoft Emergency Kit не возможено', 5) Global $EKitFulV = '0' Else Global $EKitFulV = 'Версия Emsisoft EKit ' & $GetAdrEKit[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 36) ; WinSetTitle($hProgress, '', '36 %') ; ;Получение версии для VirusTotal Uploader 11 Global $GetAdrVUploaderV = StringRegExp(BinaryToString(InetRead('https://www.virustotal.com/documentation/desktop-applications/', 1), 4), '(?i)[\<]a class="btn small" href[\=]"[\/]static[\/]bin[\/]vtuploader(.*?)[\.]exe"[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Получить версию утилиты VirusTotal Uploader не возможено', 5) Global $VUploaderFulAdrV = '0' Else Global $VUploaderFulAdrV = 'Версия VirusTotal Uploader ' & $GetAdrVUploaderV[0] EndIf ;Получение версии для Hitman Pro 12 Global $GetHP = StringRegExp(BinaryToString(InetRead('http://www.surfright.nl/en/downloads/', 1), 4), '(?si)32-bit.*?[\<][\/]td[\>].*?[\<]td align="center"[\>].*?[\<]a href[\=]"[\/]en[\/]hitmanpro[\/]whatsnew"[\>](.*?)[\<][\/]a[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Получить версию утилиты Hitman Pro Невозможно', 5) Global $HPFulDataU = '0' Else Global $HPFulDataU = 'Версия Hitman Pro ' & $GetHP[0] EndIf ;Получение версии для ComboFix 13 Global $CBFFulDataU = 'Версия ComboFix от ' & @MDAY & '-' & @MON & '-' & @YEAR ;Получение версии для AnVir Task Manager 14 Global $GetATM = StringRegExp(BinaryToString(InetRead('http://samlab.ws/soft/anvir/', 1), 4), '(?si)[\<]title[\>]SamLab[\.]ws [\-] AnVir Task Manager (.*?)[\<]/title[\>]', 1) If @error Then MsgBox(48 + 262144, 'Error', 'Получить версию утилиты AnVir Task Manager Невозможно', 5) Global $ATMFulData = '0' Global $AnverSTR3 = '0' Else Global $ATMFulData = 'Версия AnVir Task Manager ' & $GetATM[0] Global $AnverSTR3 = $GetATM[0] EndIf ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Получение версий для уилит ;;;;;;;;;;;;;;;;;;;;;Переменные для версий программ и дисков ;;;;;;;;;;;;;;;;;;;;;Переменные для работы функций ;Процент загрузки GUICtrlSetData($iProgress, 37) ; WinSetTitle($hProgress, '', '37 %') ; ;Переменные для Hijack Global $sFileName = StringRegExp(BinaryToString(InetRead('http://sourceforge.net/projects/hjt/files/' & $GetH[0] & '/', 1), 4), 'Click to download (.*?)[\.]exe"', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для HijackThis', 5) Global $sLastLink = '0' Else Global $sLastLink = 'http://citylan.dl.sourceforge.net/project/hjt/' & $GetH[0] & '/' & $sFileName[0] & '.exe' EndIf ;Процент загрузки GUICtrlSetData($iProgress, 38) ; WinSetTitle($hProgress, '', '38 %') ; ; Переменные для касперского Global $aLinkK = StringRegExp(BinaryToString(InetRead('http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool11/', 1), 4), '(?i)href="(.*?)">setup', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для KasperskyAVPTool', 5) Global $sFileNameK = '0' Global $sLastLinkK = '0' Else Global $sFileNameK = _ArrayMax($aLinkK, 0, 1) Global $sLastLinkK = 'http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool11/' & $sFileNameK EndIf ;Процент загрузки GUICtrlSetData($iProgress, 39) ; WinSetTitle($hProgress, '', '39 %') ; Global $sLinkM = StringRegExp(BinaryToString(InetRead('http://www.bleepingcomputer.com/download/malwarebytes-anti-malware/dl/7/?1', 1), 4), "(?i)malwarebytes[\-]anti[\-]malware/mbam[\-]setup[\-](.*?)[\.]exe\S[\>]click here", 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для MBAM', 5) Global $VerMBAM = '0' Global $mFileShName = '0' Global $VMName = '0' Else Global $sDownLinkM = StringRegExp(BinaryToString(InetRead('http://www.bleepingcomputer.com/download/malwarebytes-anti-malware/dl/7/?1', 1), 4), "(?i)If the download process does not begin automatically[\,] please [\<]a href[\=]\S(.*?)\S>click here", 3) If @error Then Global $mFileName = '0' Else Global $mFileName = $sDownLinkM[0] EndIf Global $VMName = 'mbam-setup-' & $sLinkM[0] & '.exe' Global $VerMBAM = 'Версия MBAM ' & $sLinkM[0] Global $mFileShName = $VMName EndIf ;Процент загрузки GUICtrlSetData($iProgress, 40) ; WinSetTitle($hProgress, '', '40 %') ; ; Преременные для uVS Global $GetUVS = StringRegExp(BinaryToString(InetRead('http://dsrt.dyndns.org/uvsfiles.htm', 1), 4), '(?i)[\<]font.*"[\>][\<]a href="/files/(.*?)"[\>]u', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для uVS', 5) Global $AllLink = '0' Global $UVSFileName = '0' Else Global $AllLink = 'http://dsrt.dyndns.org/files/' & $GetUVS[0] Global $UVSFileName = $GetUVS[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 41) ; WinSetTitle($hProgress, '', '41 %') ; ;Переменные для McAfee If @OSArch = "X64" Then ;Переменные для McAfee Global $sVerMc = StringRegExp(BinaryToString(InetRead('http://downloadcenter.mcafee.com/products/mcafee-avert/stinger/', 1), 4), '(?i)[\<]IMG.*HREF[\=]"(.*?)"[\>]stinger64[\.]exe[\<]/A[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Загрузка утилиты McAfee невозможна', 5) Global $LinkMc = '0' Else Global $LastMc = $sVerMc[UBound($sVerMc) - 1] Global $LinkMc = 'http://downloadcenter.mcafee.com/products/mcafee-avert/stinger/' & $LastMc EndIf Else ;Переменные для McAfee Global $sVerMc = StringRegExp(BinaryToString(InetRead('http://downloadcenter.mcafee.com/products/mcafee-avert/stinger/', 1), 4), '(?i)[\<]IMG.*HREF[\=]"(.*?)"[\>]stinger32[\.]exe[\<]/A[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Загрузка утилиты McAfee невозможна', 5) Global $LinkMc = '0' Else Global $LastMc = $sVerMc[UBound($sVerMc) - 1] Global $LinkMc = 'http://downloadcenter.mcafee.com/products/mcafee-avert/stinger/' & $LastMc EndIf EndIf ;Процент загрузки GUICtrlSetData($iProgress, 42) ; WinSetTitle($hProgress, '', '42 %') ; ;Получение адреса для COMODO Cleaning Essentials х32 Global $GetAdrCOAdr = StringRegExp(BinaryToString(InetRead('http://www.comodo.com/business-security/network-protection/cleaning_essentials.php', 1), 4), '(?i)"href[\_]vxp[\_]32"[\:]"(.*?)"', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для COMODO CE х32а', 5) Global $COFulAdr = '0' Else Global $COFulAdr = $GetAdrCOAdr[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 43) ; WinSetTitle($hProgress, '', '43 %') ; ;Получение адреса для COMODO Cleaning Essentials X64 Global $GetAdrCO2 = StringRegExp(BinaryToString(InetRead('http://www.comodo.com/business-security/network-protection/cleaning_essentials.php', 1), 4), '(?i)"href[\_]vxp[\_]64"[\:]"(.*?)"', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для COMODO CE х64', 5) Global $COFulAdr2 = '0' Else Global $COFulAdr2 = $GetAdrCO2[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 44) ; WinSetTitle($hProgress, '', '44 %') ; If @OSArch = 'x64' Then Global $DownComodoS = $COFulAdr2 Else Global $DownComodoS = $COFulAdr EndIf ;Процент загрузки GUICtrlSetData($iProgress, 45) ; WinSetTitle($hProgress, '', '45 %') ; ;Получение адреса для Emsisoft Emergency Kit Global $EEKitFAdr = 'http://download11.emsisoft.com/EmsisoftEmergencyKit.zip' ;Переменные для VirusTotal Uploader Global $GetAdrVUploader = StringRegExp(BinaryToString(InetRead('https://www.virustotal.com/documentation/desktop-applications/', 1), 4), '(?si)install the utility.*?href[\=]"(.*?)"[\>].\s+Install VirusTotal Uploader', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для VirusTotal Uploader', 5) Global $VUploaderFulAdr = '0' Else Global $VUploaderFulAdr = 'https://www.virustotal.com' & $GetAdrVUploader[0] EndIf ;Процент загрузки GUICtrlSetData($iProgress, 46) ; WinSetTitle($hProgress, '', '46 %') ; ;Переменные для имени распаковки VirusTotal Uploader Global $GetAdrVUploaderF = StringRegExp(BinaryToString(InetRead('https://www.virustotal.com/documentation/desktop-applications/', 1), 4), '(?si)C[\:][\\]path[\\]to[\\]vt[\\]uploader[\\](.*?)\s+', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить имя для утилиты VirusTotal Uploader', 5) Global $VUploaderF = '0' Else Global $VUploaderF = $GetAdrVUploaderF[0] EndIf ;Переменные для загрузки имени VirusTotal Uploader Global $GetAdrVUploaderN = StringRegExp(BinaryToString(InetRead('https://www.virustotal.com/documentation/desktop-applications/', 1), 4), '(?si)[\<]a.*href="/static/bin/(.*?)"[\>].\s+Install VirusTotal Uploader[\<]/a[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить имя для утилиты VirusTotal Uploader', 5) Global $VUploaderFulAdrN = '0' Else Global $VUploaderFulAdrN = $GetAdrVUploaderN[0] EndIf ;Получение адреса для Hitman Pro x32 Global $GetHP32 = StringRegExp(BinaryToString(InetRead('http://www.surfright.nl/en/downloads/', 1), 4), '(?si).*?32-bit.*?[\<]/td[\>].*?[\<]td align="center"[\>].*?[\<]a href="/en/hitmanpro/whatsnew"[\>].*?[\<]/a[\>].*?[\<]/td[\>].*?[\<]td align="center"[\>].*?[\<]a href="(.*?)"[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для Hitman Pro x32', 5) Global $HPFulDataU32 = '0' Else Global $HPFulDataU32 = $GetHP32[0] EndIf ;Получение адреса для Hitman Pro x64 Global $GetHP64 = StringRegExp(BinaryToString(InetRead('http://www.surfright.nl/en/downloads/', 1), 4), '(?si).*?64-bit.*?[\<]/td[\>].*?[\<]td align="center"[\>].*?[\<]a href="/en/hitmanpro/whatsnew"[\>].*?[\<]/a[\>].*?[\<]/td[\>].*?[\<]td align="center"[\>].*?[\<]a href="(.*?)"[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для Hitman Pro x64', 5) Global $HPFulDataU64 = '0' Else Global $HPFulDataU64 = $GetHP64[0] EndIf If @OSArch = 'x64' Then Global $DownHPS = $HPFulDataU64 Else Global $DownHPS = $HPFulDataU32 EndIf ;Переменная для имени Hitman Pro Global $NHMP = StringRegExp($DownHPS, '(?i)http[\:]//.*nl/(.*?)$', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить имя файла для утилиты Hitman Pro', 5) Global $FNHMP = '0' Else Global $FNHMP = $NHMP[0] EndIf ;Получение адреса для ComboFix Global $GetCBFAdr = StringRegExp(BinaryToString(InetRead('http://www.bleepingcomputer.com/download/combofix/dl/12/'), 4), "(?i)please [\<]a href[\=][\'](.*?)[\'][\>]click here", 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для ComboFix', 5) Global $CBFFulAdr = '0' Else Global $CBFFulAdr = $GetCBFAdr[0] EndIf ;Адрес для AnVir Task Manager Global $AdrAnvirTM = 'http://www.anvir.net/downloads/anvirrus.zip' ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;Переменные для определения размера утилит ;Процент загрузки GUICtrlSetData($iProgress, 47) ; WinSetTitle($hProgress, '', '47 %') ; Global $InetSizeDrWeb = InetGetSize("http://download.geo.drweb.com/pub/drweb/cureit/drweb-cureit.exe", 1) ;Процент загрузки GUICtrlSetData($iProgress, 48) ; WinSetTitle($hProgress, '', '48 %') ; Global $InetSizeAVZ = InetGetSize('http://z-oleg.com/avz4.zip', 1) ;Процент загрузки GUICtrlSetData($iProgress, 49) ; WinSetTitle($hProgress, '', '49 %') ; Global $InetSizeKasp = InetGetSize($sLastLinkK, 1) ;Процент загрузки GUICtrlSetData($iProgress, 50) ; WinSetTitle($hProgress, '', '50 %') ; Global $InetSizeMBAM = InetGetSize($mFileName, 1) ;Процент загрузки GUICtrlSetData($iProgress, 51) ; WinSetTitle($hProgress, '', '51 %') ; Global $InetSizeHiJack = InetGetSize($sLastLink, 1) ;Процент загрузки GUICtrlSetData($iProgress, 52) ; WinSetTitle($hProgress, '', '52 %') ; Global $InetSizeUVSP = InetGetSize($AllLink, 1) ;Процент загрузки GUICtrlSetData($iProgress, 53) ; WinSetTitle($hProgress, '', '53 %') ; Global $InetSizeUVSB = InetGetSize('http://dsrt.dyndns.org/files/MAIN.zip', 1) ;Процент загрузки GUICtrlSetData($iProgress, 54) ; WinSetTitle($hProgress, '', '54 %') ; Global $InetSizeGMER = InetGetSize("http://www2.gmer.net/gmer.zip", 1) ;Процент загрузки GUICtrlSetData($iProgress, 55) ; WinSetTitle($hProgress, '', '55 %') ; Global $InetSizeMcafi = InetGetSize($LinkMc, 1) ;Процент загрузки GUICtrlSetData($iProgress, 56) ; WinSetTitle($hProgress, '', '56 %') ; Global $InetSizeCOMUT = InetGetSize($DownComodoS, 1) ;Процент загрузки GUICtrlSetData($iProgress, 57) ; WinSetTitle($hProgress, '', '57 %') ; Global $InetSizeEKit = InetGetSize($EEKitFAdr, 1) ;Процент загрузки GUICtrlSetData($iProgress, 58) ; WinSetTitle($hProgress, '', '58 %') ; Global $InetSizeVTU = InetGetSize($VUploaderFulAdr, 1) Global $InetSizeHPS = InetGetSize($DownHPS, 1) Global $InetSizeCBF = InetGetSize($CBFFulAdr, 1) Global $InetSizeAnVirTM = InetGetSize($AdrAnvirTM) ;;;;;;;;;;;;;;;;;;;;;Переменные для определения размера утилит ;;;;;;;;;;;;;;;;;;;;;Переменные для определения размера LiveCD & USB ;Процент загрузки GUICtrlSetData($iProgress, 59) ; WinSetTitle($hProgress, '', '59 %') ; Global $hDownloadDrLCD = InetGetSize($DrFulAdr, 1) ;Процент загрузки GUICtrlSetData($iProgress, 60) ; WinSetTitle($hProgress, '', '60 %') ; Global $hDownloadDrUSB = InetGetSize($DrFulAdr2, 1) ;Процент загрузки GUICtrlSetData($iProgress, 61) ; WinSetTitle($hProgress, '', '61 %') ; Global $hDownloadKav = InetGetSize($KFulAdr, 1) ;Процент загрузки GUICtrlSetData($iProgress, 62) ; WinSetTitle($hProgress, '', '62 %') ; Global $hDownloadAvira = InetGetSize($AviraFulAdr, 1) ;Процент загрузки GUICtrlSetData($iProgress, 63) ; WinSetTitle($hProgress, '', '63 %') ; Global $hDownloadESET = InetGetSize($ESETFulAdr, 1) ;Процент загрузки GUICtrlSetData($iProgress, 64) ; WinSetTitle($hProgress, '', '64 %') ; Global $hDownloadBit = InetGetSize($BitFulAdr, 1) ;Процент загрузки GUICtrlSetData($iProgress, 65) ; WinSetTitle($hProgress, '', '65 %') ; Global $hDownloadTMicro = InetGetSize('http://www.trendmicro.com/ftp/products/rescuedisk/RescueDisk.exe', 1) ;Процент загрузки GUICtrlSetData($iProgress, 66) ; WinSetTitle($hProgress, '', '66 %') ; ;Переменные для получения размера eScanLiveCD Global $GetAdreScanR = StringRegExp(BinaryToString(InetRead('http://www.avescan.ru/download/', 1), 4), '(?i)escanrd[\.]iso
.*

[\:] [\<]a href[\=][\"](.*?)"', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для eScanLiveCD', 5) Global $hDownloadeScan = '0' Global $hDownScan = '0' Else Global $hDownScan = 'http://www.avescan.ru' & $GetAdreScanR[0] Global $hDownloadeScan = InetGetSize($hDownScan, 1) EndIf ;Процент загрузки GUICtrlSetData($iProgress, 67) ; WinSetTitle($hProgress, '', '67 %') ; Global $hDownloadeCRD = InetGetSize($COFAdrCD, 1) Global $hDownloadeTP = InetGetSize($GetNAdrTP, 1) ;Процент загрузки GUICtrlSetData($iProgress, 68) ; WinSetTitle($hProgress, '', '68 %') ; Global $hDownloadeAVG = InetGetSize($AVGFul, 1) Global $hDownloadeVBA = InetGetSize($VBAFulAdr, 1) Global $hDownloadeSMS = InetGetSize($SMSFulAdr, 3) Global $InetSizePCTCD = InetGetSize($DownPCT, 1) ;Процент загрузки GUICtrlSetData($iProgress, 69) ; WinSetTitle($hProgress, '', '69 %') ; ;;;;;;;;;;;;;;;;;;;;;Переменные для определения размера LiveCD & USB ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;Переменные для работы функций ;Процент загрузки GUICtrlSetData($iProgress, 70) ; WinSetTitle($hProgress, '', '70 %') ; ;Процент загрузки GUICtrlSetData($iProgress, 71) ; WinSetTitle($hProgress, '', '71 %') ; If $var < 500.0 Then MsgBox(48 + 262144, 'Мало места!!!', $dscM, 5, $hGui) EndIf ;Процент загрузки GUICtrlSetData($iProgress, 72) ; WinSetTitle($hProgress, '', '72 %') ; ;;;;;;;;;;;;;;;;;;;;;Переменные для работы функций ;Процент загрузки GUICtrlSetData($iProgress, 73) ; WinSetTitle($hProgress, '', '73 %') ; ;Процент загрузки GUICtrlSetData($iProgress, 74) ; WinSetTitle($hProgress, '', '74 %') ; ;**************************************************Отрисовка отображения главного окна Global $hGui = GUICreate("DAU", 175, 400, -1, -1, $WS_SYSMENU, $WS_EX_TOPMOST) GUICtrlSetDefBkColor(0xF6F6F3) Global $nButton1 = GUICtrlCreateButton("Загрузить", 35, 339, 90) GUICtrlCreateTab(2, 2, 167, 335) GUICtrlCreateTabItem("Утилиты") Global $Label = GUICtrlCreateLabel("Версии антивирусных утилит", 5, 30, 158, -1, $SS_SUNKEN, BitOR($SS_CENTER, $SS_ETCHEDFRAME, $SS_WHITEFRAME)) ;Отрисовка чекбоксов $checkbox[1] = GUICtrlCreateCheckbox("Dr.Web CureIt!", 5, 52, '', '', $BS_ICON) $checkbox[2] = GUICtrlCreateCheckbox("Kaspersky AVP Tool", 5, 72, '', '', $BS_ICON) $checkbox[3] = GUICtrlCreateCheckbox("Malwarebytes", 5, 92, '', '', $BS_ICON) $checkbox[4] = GUICtrlCreateCheckbox("AVZ", 5, 112, '', '', $BS_ICON) $checkbox[5] = GUICtrlCreateCheckbox("HijackThis", 5, 132, '', '', $BS_ICON) $checkbox[6] = GUICtrlCreateCheckbox("UVS", 5, 152, '', '', $BS_ICON) $checkbox[7] = GUICtrlCreateCheckbox("GMER", 5, 172, '', '', $BS_ICON) $checkbox[8] = GUICtrlCreateCheckbox("McAfee-Stinger", 5, 192, '', '', $BS_ICON) $checkbox[9] = GUICtrlCreateCheckbox("COMODO CE", 5, 212, '', '', $BS_ICON) $checkbox[10] = GUICtrlCreateCheckbox("Emsisoft EKit", 5, 232, '', '', $BS_ICON) $checkbox[11] = GUICtrlCreateCheckbox("VirusTotal Uploader", 5, 252, '', '', $BS_ICON) $checkbox[12] = GUICtrlCreateCheckbox("Hitman Pro", 5, 272, '', '', $BS_ICON) $checkbox[13] = GUICtrlCreateCheckbox("ComboFix", 5, 292, '', '', $BS_ICON) $checkbox[14] = GUICtrlCreateCheckbox("AnVir Task Manager", 5, 312, '', '', $BS_ICON) GUICtrlCreateTabItem("") GUICtrlCreateTabItem("CD-DVD-USB") $Label2 = GUICtrlCreateLabel("Версии cd-dvd-usb утилит", 5, 30, 158, -1, $SS_SUNKEN, BitOR($SS_CENTER, $SS_ETCHEDFRAME, $SS_WHITEFRAME)) $checkbox[15] = GUICtrlCreateCheckbox("Dr.Web LiveCD", 5, 52, '', '', $BS_ICON) $checkbox[16] = GUICtrlCreateCheckbox("Dr.Web LiveUSB", 5, 72, '', '', $BS_ICON) $checkbox[17] = GUICtrlCreateCheckbox("Kaspersky Rescue Disk", 5, 92, '', '', $BS_ICON) $checkbox[18] = GUICtrlCreateCheckbox("Avira Rescue System", 5, 112, '', '', $BS_ICON) $checkbox[19] = GUICtrlCreateCheckbox("ESET NOD32 LiveCD", 5, 132, '', '', $BS_ICON) $checkbox[20] = GUICtrlCreateCheckbox("BitDefenderRescueCD", 5, 152, '', '', $BS_ICON) $checkbox[21] = GUICtrlCreateCheckbox("Trend Micro Rescue Disk", 5, 172, '', '', $BS_ICON) $checkbox[22] = GUICtrlCreateCheckbox("eScanLiveCD", 5, 192, '', '', $BS_ICON) $checkbox[23] = GUICtrlCreateCheckbox("Comodo RD", 5, 212, '', '', $BS_ICON) $checkbox[24] = GUICtrlCreateCheckbox("AVG RD", 5, 232, '', '', $BS_ICON) $checkbox[25] = GUICtrlCreateCheckbox("TrustPort LCD", 5, 252, '', '', $BS_ICON) $checkbox[26] = GUICtrlCreateCheckbox("VBA32 Rescue", 5, 272, '', '', $BS_ICON) $checkbox[27] = GUICtrlCreateCheckbox("AntiSMS", 5, 292, '', '', $BS_ICON) $checkbox[28] = GUICtrlCreateCheckbox("PC Tools AOSS CD", 5, 312, '', '', $BS_ICON) GUICtrlCreateTabItem("") ; определяет конец вкладок ;**************************************************Отрисовка отображения главного окна ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Переменные размера утилит GUICtrlSetTip(8, StringRegExpReplace(Round(($InetSizeDrWeb / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'Dr.Web', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 75) ; WinSetTitle($hProgress, '', '75 %') ; GUICtrlSetTip(9, StringRegExpReplace(Round(($InetSizeKasp / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'Kasper', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 76) ; WinSetTitle($hProgress, '', '76 %') ; GUICtrlSetTip(10, StringRegExpReplace(Round(($InetSizeMBAM / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'MBAM', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 77) ; WinSetTitle($hProgress, '', '77 %') ; GUICtrlSetTip(11, StringRegExpReplace(Round(($InetSizeAVZ / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'AVZ', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 78) ; WinSetTitle($hProgress, '', '78 %') ; GUICtrlSetTip(12, StringRegExpReplace(Round($InetSizeHiJack / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' KB', 'HiJack', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 79) ; WinSetTitle($hProgress, '', '79 %') ; GUICtrlSetTip(13, StringRegExpReplace(Round((($InetSizeUVSP + $InetSizeUVSB) / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'UVS', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 80) ; WinSetTitle($hProgress, '', '80 %') ; GUICtrlSetTip(14, StringRegExpReplace(Round($InetSizeGMER / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' KB', 'GMER', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 81) ; WinSetTitle($hProgress, '', '81 %') ; GUICtrlSetTip(15, StringRegExpReplace(Round(($InetSizeMcafi / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'McAfee', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 82) ; WinSetTitle($hProgress, '', '82 %') ; GUICtrlSetTip(16, StringRegExpReplace(Round(($InetSizeCOMUT / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'CCE', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 83) ; WinSetTitle($hProgress, '', '83 %') ; GUICtrlSetTip(17, StringRegExpReplace(Round(($InetSizeEKit / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'EEKit', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 84) ; WinSetTitle($hProgress, '', '84 %') ; GUICtrlSetTip(18, StringRegExpReplace(Round($InetSizeVTU / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' KB', 'VirusTotal Up', 1, 1) GUICtrlSetTip(19, StringRegExpReplace(Round(($InetSizeHPS / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'Hitman Pro', 1, 1) GUICtrlSetTip(20, StringRegExpReplace(Round(($InetSizeCBF / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'ComboFix', 1, 1) GUICtrlSetTip(21, StringRegExpReplace(Round(($InetSizeAnVirTM / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'AnVir TM', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 85) ; WinSetTitle($hProgress, '', '85 %') ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Переменные размера утилит ;Процент загрузки GUICtrlSetData($iProgress, 86) ; WinSetTitle($hProgress, '', '86 %') ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Переменные размера CD GUICtrlSetTip(24, StringRegExpReplace(Round(($hDownloadDrLCD / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'Dr.Web-CD', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 87) ; WinSetTitle($hProgress, '', '87 %') ; GUICtrlSetTip(25, StringRegExpReplace(Round(($hDownloadDrUSB / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'Dr.Web-USB', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 88) ; WinSetTitle($hProgress, '', '88 %') ; GUICtrlSetTip(26, StringRegExpReplace(Round(($hDownloadKav / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'Kasper-CD', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 89) ; WinSetTitle($hProgress, '', '89 %') ; GUICtrlSetTip(27, StringRegExpReplace(Round(($hDownloadAvira / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'Avira-CD', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 90) ; WinSetTitle($hProgress, '', '90 %') ; GUICtrlSetTip(28, StringRegExpReplace(Round(($hDownloadESET / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'ESET-CD', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 91) ; WinSetTitle($hProgress, '', '91 %') ; GUICtrlSetTip(29, StringRegExpReplace(Round(($hDownloadBit / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'BitDef-CD', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 92) ; WinSetTitle($hProgress, '', '92 %') ; GUICtrlSetTip(30, StringRegExpReplace(Round(($hDownloadTMicro / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'TrendM-CD', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 93) ; WinSetTitle($hProgress, '', '93 %') ; GUICtrlSetTip(31, StringRegExpReplace(Round($hDownloadeScan / 1024 / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'eScan-CD', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 94) ; WinSetTitle($hProgress, '', '94 %') ; GUICtrlSetTip(32, StringRegExpReplace(Round(($hDownloadeCRD / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'Comodo-RD', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 95) ; WinSetTitle($hProgress, '', '95 %') ; GUICtrlSetTip(33, StringRegExpReplace(Round(($hDownloadeAVG / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'AVG RD', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 96) ; WinSetTitle($hProgress, '', '96 %') ; GUICtrlSetTip(34, StringRegExpReplace(Round(($hDownloadeTP / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'TrustPort LCD', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 97) ; WinSetTitle($hProgress, '', '97 %') ; GUICtrlSetTip(35, StringRegExpReplace(Round(($hDownloadeVBA / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'VBA32 Rescue', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 98) ; WinSetTitle($hProgress, '', '98 %') ; GUICtrlSetTip(36, StringRegExpReplace(Round(($hDownloadeSMS / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'AntiSMS CD', 1, 1) ;Процент загрузки GUICtrlSetData($iProgress, 99) ; WinSetTitle($hProgress, '', '99 %') ; GUICtrlSetTip(37, StringRegExpReplace(Round(($InetSizePCTCD / 1024) / 1024, 0), '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ') & ' MB', 'PC Tools AOSS CD', 1, 1) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Переменные размера CD ;Процент загрузки GUICtrlSetData($iProgress, 100) ; WinSetTitle($hProgress, '', '100 %') ; ;Удвление окна загрузки GUIDelete($hProgress) ; ;Горячие клавиши HotKeySet('^+h', 'MFHelp') HotKeySet('^+c', 'MFClearLog') ;************************************************Создание дочерних окон Global $dGUI = GUICreate("Help", 340, 190, 1, 1, $WS_POPUP, $WS_EX_TOPMOST + $WS_EX_CLIENTEDGE + $WS_EX_WINDOWEDGE, $hGui) Global $aCol = GUISetBkColor(0x99FFFF) ; устанавливает цвет фона GUICtrlCreateLabel($DrWeb & @CRLF & $Kasp & @CRLF & $AVZ & @CRLF & $VerMBAM & @CRLF & $Hijack & @CRLF & $UVS & @CRLF & _ $GMER & @CRLF & $McA & @CRLF & $COFulV & @CRLF & $EKitFulV & @CRLF & $VUploaderFulAdrV & @CRLF & $HPFulDataU & @CRLF & _ $CBFFulDataU & @CRLF & $ATMFulData, 3, 1) Global $Button1 = GUICtrlCreateButton("X", 320, 1, 20, 20) Global $Y = @DesktopWidth Global $Rez = $Y - 340 Global $dGUI2 = GUICreate("Help", 340, 190, $Rez, 1, $WS_POPUP, $WS_EX_TOPMOST + $WS_EX_CLIENTEDGE + $WS_EX_WINDOWEDGE, $hGui) GUISetBkColor(0x99FFFF) ; устанавливает цвет фона GUICtrlCreateLabel($DrFulDataU & @CRLF & $DrFulDataC & @CRLF & $KFulAdrV & @CRLF & $AFulAdr & @CRLF & $NODFulAdr & _ @CRLF & $BitDefFulAdr & @CRLF & $TrendFulAdr & @CRLF & $eScanFulAdrV & @CRLF & $COFAdrCDV & @CRLF & $AVGFulV & @CRLF & _ $TPFulAdrV & @CRLF & $VBAFulDataU & @CRLF & $SMSFulDataU & @CRLF & $mFileNameP, 3, 1) Global $Button2 = GUICtrlCreateButton("X", 320, 1, 20, 20) ;************************************************Создание дочерних окон GUISetState(@SW_SHOW, $hGui) ;Цикл выполнения основных функций GUI While 1 $nMsg = GUIGetMsg(1) Switch $nMsg[0] Case $GUI_EVENT_CLOSE If $nMsg[1] = $hGui Then MFBadLog() MFClearTemp() Exit EndIf If $nMsg[1] = $dGUI Then GUIDelete($dGUI) EndIf If $nMsg[1] = $dGUI2 Then GUIDelete($dGUI2) EndIf Case $Label If Not WinActive($dGUI) Then GUISetState(@SW_SHOW, $dGUI) Else GUISetState(@SW_HIDE, $dGUI) EndIf If WinActive($dGUI) Then GUISetState(@SW_SHOW, $dGUI) Else GUISetState(@SW_HIDE, $dGUI) EndIf Case $Label2 If Not WinActive($dGUI2) Then GUISetState(@SW_SHOW, $dGUI2) Else GUISetState(@SW_HIDE, $dGUI2) EndIf If WinActive($dGUI2) Then GUISetState(@SW_SHOW, $dGUI2) Else GUISetState(@SW_HIDE, $dGUI2) EndIf Case $Button1 GUISetState(@SW_HIDE, $dGUI) Case $Button2 GUISetState(@SW_HIDE, $dGUI2) Case $nButton1 HotKeySet('^+h') HotKeySet('^+c') XDo() EndSwitch WEnd Func _IsPressed($sHexKey, $vDLL = 'user32.dll') ; $hexKey must be the value of one of the keys. ; _Is_Key_Pressed will return 0 if the key is not pressed, 1 if it is. Local $a_R = DllCall($vDLL, "short", "GetAsyncKeyState", "int", '0x' & $sHexKey) If @error Then Return SetError(@error, @extended, False) Return BitAND($a_R[0], 0x8000) <> 0 EndFunc ;==>_IsPressed Func XDo() Global $dll = DllOpen("user32.dll") While 1 If _IsPressed("A0", $dll) Then MFPDownUPack() Return Else For $i = 1 To UBound($checkbox) - 1 If BitAND(GUICtrlRead($checkbox[$i]), $GUI_CHECKED) Then $iCount += 1 Execute('_' & $i & '()') EndIf Next If $iCount Then MFEndLog() MFClearTemp() EndIf If Not $iCount Then MFBadLog() MFClearTemp() MsgBox(16 + 262144, 'Error', 'Ничего не выбрано!!!', 0, $hGui) Exit EndIf Exit EndIf WEnd DllClose($dll) EndFunc ;==>XDo Func MFHelp() TrayTip("Описание горячих клавиш.", "Зажать клавишу Shift и нажать кнопку Загрузить = Загрузить все антивирусные утилиты сразу." _ & @LF & "Ctrl+Shift+h = Вызвать всплывающую подсказку" & @LF & "Ctrl+Shift+c = Стереть содержимое лог фала.", 30, 1) Sleep(2000) EndFunc ;==>MFHelp Func MFLog() ;Запись результата Global $file = FileOpen(@ScriptDir & '\logdown.log', 1) ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) EndIf FileWriteLine($file, '****************************************') FileWriteLine($file, 'Запуск утилиты ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN) FileWriteLine($file, '****************************************') FileClose($file) EndFunc ;==>MFLog Func MFEndLog() ;Запись результата Global $file = FileOpen(@ScriptDir & '\logdown.log', 1) ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) EndIf FileWriteLine($file, '****************************************') FileWriteLine($file, 'Работа завершена ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN) FileWriteLine($file, '****************************************') FileClose($file) EndFunc ;==>MFEndLog Func MFClearLog() TrayTip('', 'Очистка файла отчетов.', 5, 1) Sleep(2000) If FileOpen(@ScriptDir & '\logdown.log', 1) = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return EndIf If FileExists(@ScriptDir & '\logdown.log') Then Sleep(150) FileClose(@ScriptDir & '\logdown.log') Sleep(150) FileOpen(@ScriptDir & '\logdown.log', 2) Sleep(150) FileWriteLine(@ScriptDir & '\logdown.log', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx') FileWriteLine(@ScriptDir & '\logdown.log', 'Лог очищен ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN) FileWriteLine(@ScriptDir & '\logdown.log', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx') Sleep(150) FileClose(@ScriptDir & '\logdown.log') EndIf EndFunc ;==>MFClearLog Func MFBadLog() If FileOpen(@ScriptDir & '\logdown.log', 1) = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return EndIf If FileExists(@ScriptDir & '\logdown.log') Then Sleep(150) FileClose(@ScriptDir & '\logdown.log') Sleep(150) FileOpen(@ScriptDir & '\logdown.log', 1) Sleep(150) FileWriteLine(@ScriptDir & '\logdown.log', '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!') FileWriteLine(@ScriptDir & '\logdown.log', 'Выход без работы ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN) FileWriteLine(@ScriptDir & '\logdown.log', '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!') Sleep(150) FileClose(@ScriptDir & '\logdown.log') EndIf EndFunc ;==>MFBadLog Func MFPDownUPack() ;Запись результата $file = FileOpen(@ScriptDir & '\logdown.log', 1) ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Else FileWriteLine($file, '****************************************') FileWriteLine($file, 'Инициализация утилиты клавишей shift') FileWriteLine($file, 'Используется тихий режим загрузки всех утилит - ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN) FileWriteLine($file, '****************************************') FileClose($file) EndIf If WinActive($hGui) Then TrayTip("Инициализация по горячей клавиши.", "Загружаю все и сразу)." & @LF & "Ожидайте завершения.", 10, 1) Sleep(200) HotKeySet('^+h') HotKeySet('^+c') GUIDelete($hGui) MFProDown() TrayTip("Инициализация по горячей клавиши.", "Проверяю загруженное." & @LF & "Ожидайте завершения.", 30, 1) Sleep(200) MFCheckDownDrWeb() MFCheckDownKasper() MFCheckDownMBAM() MFCheckDownHijackThis() MFCheckDownMcAfee() MFCheckDownAVZ() MFCheckDownGMER() MFCheckDownUVS() MFCheckDownUVSMAIN() MFCheckDownCCE() MFCheckDownEEK() MFCheckDownVTU() MFCheckDownHMP() MFCheckDownCBF() MFCheckDownAnVirTM() TrayTip("Инициализация по горячей клавиши.", "Распаковываю." & @LF & "Ожидайте завершения.", 30, 1) Sleep(200) MFUnPackAVZ() MFUnPackUVS() MFUnPackUVSMAIN() MFUnPackGMER() MFUnPackCCE() MFUnPackEEK() MFUnPackVTU() MFUnPackAnVirTM() TrayTip("Инициализация по горячей клавиши.", "Убираю мусор." & @LF & "Ожидайте завершения.", 30, 1) Sleep(200) MFEndLog() MFClearTemp() MFProExit() Else TrayTip("Ошибка!", "Активируйте или перейдите на окно загрузки утилит.", 30, 3) Sleep(200) EndIf EndFunc ;==>MFPDownUPack Func MFProDown() Local $AllSizeDown = $InetSizeDrWeb + $InetSizeAVZ + $InetSizeHiJack + $InetSizeKasp + $InetSizeGMER _ + $InetSizeMBAM + $InetSizeMcafi + $InetSizeUVSB + $InetSizeUVSP + $InetSizeCOMUT + _ $InetSizeEKit + $InetSizeVTU + $InetSizeHPS + $InetSizeCBF + $InetSizeAnVirTM Local $hDrDown = InetGet('http://download.geo.drweb.com/pub/drweb/cureit/drweb-cureit.exe', @ScriptDir & '\drweb-cureit.exe', 1, 1) Local $hKasDown = InetGet($sLastLinkK, @ScriptDir & '\' & $sFileNameK, 1, 1) Local $hMbsDown = InetGet($mFileName, @ScriptDir & '\' & $mFileShName, 1, 1) Local $hHiDown = InetGet($sLastLink, @ScriptDir & '\HijackThis.exe', 1, 1) Local $hMstDown = InetGet($LinkMc, @ScriptDir & '\' & StringRegExpReplace($LastMc, '\d', ''), 1, 1) Local $hAVZDown = InetGet('http://z-oleg.com/avz4.zip', @ScriptDir & '\avz4.zip', 1, 1) Local $hUDown = InetGet($AllLink, @ScriptDir & '\' & $UVSFileName, 1, 1) Local $hUMDown = InetGet('http://dsrt.dyndns.org/files/MAIN.zip', @ScriptDir & '\MAIN.zip', 1, 1) Local $hGMDown = InetGet('http://www2.gmer.net/gmer.zip', @ScriptDir & '\gmer.zip', 1, 1) Local $DownComodoSS = InetGet($DownComodoS, @ScriptDir & '\CCE.zip', 1, 1) Local $DownEEKit = InetGet($EEKitFAdr, @ScriptDir & '\EEK.zip', 1, 1) Local $DownVTUS = InetGet($VUploaderFulAdr, @TempDir & '\' & $VUploaderFulAdrN, 1, 1) Local $DownHMPvS = InetGet($DownHPS, @ScriptDir & '\' & $FNHMP, 1, 1) Local $DownCBFvS = InetGet($CBFFulAdr, @ScriptDir & '\ComboFix.exe', 1, 1) Local $DownATM = InetGet($AdrAnvirTM, @ScriptDir & '\anvirrus.zip', 1, 1) Do Local $iDownloaded = InetGetInfo($hDrDown, 0) + InetGetInfo($hKasDown, 0) + InetGetInfo($hMbsDown, 0) + InetGetInfo($hHiDown, 0) + InetGetInfo($hMstDown, 0) _ + InetGetInfo($hAVZDown, 0) + InetGetInfo($hUDown, 0) + InetGetInfo($hUMDown, 0) + InetGetInfo($hGMDown, 0) + InetGetInfo($DownComodoSS, 0) _ + InetGetInfo($DownEEKit, 0) + InetGetInfo($DownVTUS, 0) + InetGetInfo($DownHMPvS, 0) + InetGetInfo($DownCBFvS, 0) + InetGetInfo($DownATM, 0) ProgressSet($iDownloaded / $AllSizeDown * 100, "Выполнено: " & Round($iDownloaded / $AllSizeDown * 100, 0) & "%") Sleep(500) ;Чтоб не моргало =) TrayTip('', Round($iDownloaded / $AllSizeDown * 100, 0) & ' %', '', 0 + 16) Until (InetGetInfo($hDrDown, 2) And InetGetInfo($hKasDown, 2) And InetGetInfo($hMbsDown, 2) And InetGetInfo($hHiDown, 2) _ And InetGetInfo($hMstDown, 2) And InetGetInfo($hAVZDown, 2) And InetGetInfo($hUDown, 2) And InetGetInfo($hUMDown, 2) And InetGetInfo($hGMDown, 2) _ And InetGetInfo($DownComodoSS, 2) And InetGetInfo($DownEEKit, 0) And InetGetInfo($DownVTUS, 0) _ And InetGetInfo($DownHMPvS, 0) And InetGetInfo($DownCBFvS, 0) And InetGetInfo($DownATM, 0)) = True ProgressOff() InetClose($hDrDown) InetClose($hKasDown) InetClose($hMbsDown) InetClose($hHiDown) InetClose($hMstDown) InetClose($hAVZDown) InetClose($hUDown) InetClose($hUMDown) InetClose($hGMDown) InetClose($DownComodoSS) InetClose($DownEEKit) InetClose($DownVTUS) InetClose($DownHMPvS) InetClose($DownCBFvS) InetClose($DownATM) EndFunc ;==>MFProDown Func MFCheckDownDrWeb() ;Dr.Web If $InetSizeDrWeb = 0 Then Return EndIf ;DrWeb If $InetSizeDrWeb <> FileGetSize(@ScriptDir & '\drweb-cureit.exe') Then TrayTip("Ошибка загрузки!", "Повторно загружаю DrWeb." & @LF & "Ожидайте завершения.", 30, 3) Sleep(100) InetGet('http://download.geo.drweb.com/pub/drweb/cureit/drweb-cureit.exe', @ScriptDir & '\drweb-cureit.exe', 1, 0) MFCheckDownDrWeb() Else Return EndIf EndFunc ;==>MFCheckDownDrWeb Func MFCheckDownKasper() ;Kasper If $InetSizeKasp = 0 Then Return EndIf If $InetSizeKasp <> FileGetSize(@ScriptDir & '\' & $sFileNameK) Then TrayTip("Ошибка загрузки!", "Повторно загружаю KasperskyAVPTool." & @LF & "Ожидайте завершения.", 30, 3) Sleep(100) InetGet($sLastLinkK, @ScriptDir & '\' & $sFileNameK, 1, 0) MFCheckDownKasper() Else Return EndIf EndFunc ;==>MFCheckDownKasper Func MFCheckDownMBAM() ;MBAM If $InetSizeMBAM = 0 Then Return EndIf If $InetSizeMBAM <> FileGetSize(@ScriptDir & '\' & $mFileShName) Then TrayTip("Ошибка загрузки!", "Повторно загружаю MBAM." & @LF & "Ожидайте завершения.", 30, 3) Sleep(100) InetGet($mFileName, @ScriptDir & '\' & $mFileShName, 1, 0) MFCheckDownMBAM() Else Return EndIf EndFunc ;==>MFCheckDownMBAM Func MFCheckDownHijackThis() ;HijackThis If $InetSizeHiJack = 0 Then Return EndIf If $InetSizeHiJack <> FileGetSize(@ScriptDir & '\HijackThis.exe') Then TrayTip("Ошибка загрузки!", "Повторно загружаю HijackThis." & @LF & "Ожидайте завершения.", 30, 3) Sleep(100) InetGet($sLastLink, @ScriptDir & '\HijackThis.exe', 1, 0) MFCheckDownHijackThis() Else Return EndIf EndFunc ;==>MFCheckDownHijackThis Func MFCheckDownMcAfee() ;McAfee-Stinger If $InetSizeMcafi = 0 Then Return EndIf If $InetSizeMcafi <> FileGetSize(@ScriptDir & '\' & StringRegExpReplace($LastMc, '\d', '')) Then TrayTip("Ошибка загрузки!", "Повторно загружаю McAfee-Stinger." & @LF & "Ожидайте завершения.", 30, 3) Sleep(100) InetGet($LinkMc, @ScriptDir & '\' & StringRegExpReplace($LastMc, '\d', ''), 1, 0) MFCheckDownMcAfee() Else Return EndIf EndFunc ;==>MFCheckDownMcAfee Func MFCheckDownAVZ() ;AVZ If $InetSizeAVZ = 0 Then Return EndIf Local $InfoA = InetGetSize('http://z-oleg.com/avz4.zip', 1) If $InfoA <> FileGetSize(@ScriptDir & '\avz4.zip') Then TrayTip("Ошибка загрузки!", "Повторно загружаю AVZ." & @LF & "Ожидайте завершения.", 30, 3) Sleep(100) InetGet('http://z-oleg.com/avz4.zip', @ScriptDir & '\avz4.zip', 1, 0) MFCheckDownAVZ() Else Return EndIf EndFunc ;==>MFCheckDownAVZ Func MFCheckDownGMER() ;GMER If $InetSizeGMER = 0 Then Return EndIf If $InetSizeGMER <> FileGetSize(@ScriptDir & '\gmer.zip') Then TrayTip("Ошибка загрузки!", "Повторно загружаю GMER." & @LF & "Ожидайте завершения.", 30, 3) Sleep(100) InetGet('http://www2.gmer.net/gmer.zip', @ScriptDir & '\gmer.zip', 1, 0) MFCheckDownGMER() Else Return EndIf EndFunc ;==>MFCheckDownGMER Func MFCheckDownUVS() ;UVS If $InetSizeUVSP = 0 Then Return EndIf If $InetSizeUVSP <> FileGetSize(@ScriptDir & '\' & $UVSFileName) Then TrayTip("Ошибка загрузки!", "Повторно загружаю UVS." & @LF & "Ожидайте завершения.", 30, 3) Sleep(100) InetGet($AllLink, @ScriptDir & '\' & $UVSFileName, 1, 0) MFCheckDownUVS() Else Return EndIf EndFunc ;==>MFCheckDownUVS Func MFCheckDownUVSMAIN() ;UVS MAIN If $InetSizeUVSB = 0 Then Return EndIf If $InetSizeUVSB <> FileGetSize(@ScriptDir & '\MAIN.zip') Then TrayTip("Ошибка загрузки!", "Повторно загружаю UVS MAIN." & @LF & "Ожидайте завершения.", 30, 3) Sleep(100) InetGet('http://dsrt.dyndns.org/files/MAIN.zip', @ScriptDir & '\MAIN.zip', 1, 0) MFCheckDownUVSMAIN() Else Return EndIf EndFunc ;==>MFCheckDownUVSMAIN Func MFCheckDownCCE() ;CCE If $InetSizeCOMUT = 0 Then Return EndIf If $InetSizeCOMUT <> FileGetSize(@ScriptDir & '\CCE.zip') Then TrayTip("Ошибка загрузки!", "Повторно загружаю AVZ." & @LF & "Ожидайте завершения.", 30, 3) Sleep(100) InetGet($DownComodoS, @ScriptDir & '\CCE.zip', 1, 0) MFCheckDownCCE() Else Return EndIf EndFunc ;==>MFCheckDownCCE Func MFCheckDownEEK() ;EEK If $InetSizeEKit = 0 Then Return EndIf If $InetSizeEKit <> FileGetSize(@ScriptDir & '\EEK.zip') Then TrayTip("Ошибка загрузки!", "Повторно загружаю EEK." & @LF & "Ожидайте завершения.", 30, 3) Sleep(100) InetGet($EEKitFAdr, @ScriptDir & '\EEK.zip', 1, 0) MFCheckDownEEK() Else Return EndIf EndFunc ;==>MFCheckDownEEK Func MFCheckDownVTU() ;VTU If $InetSizeVTU = 0 Then Return EndIf If $InetSizeVTU <> FileGetSize(@TempDir & '\' & $VUploaderFulAdrN) Then TrayTip("Ошибка загрузки!", "Повторно загружаю VTU." & @LF & "Ожидайте завершения.", 30, 3) Sleep(100) InetGet($VUploaderFulAdr, @TempDir & '\' & $VUploaderFulAdrN, 1, 0) MFCheckDownVTU() Else Return EndIf EndFunc ;==>MFCheckDownVTU Func MFCheckDownHMP() ;HMP If $InetSizeHPS = 0 Then Return EndIf Local $InfoHMP = $InetSizeHPS If $InfoHMP <> FileGetSize(@ScriptDir & '\' & $FNHMP) Then TrayTip("Ошибка загрузки!", "Повторно загружаю HMP." & @LF & "Ожидайте завершения.", 30, 3) Sleep(100) InetGet($DownHPS, @ScriptDir & '\' & $FNHMP, 1, 0) MFCheckDownHMP() Else Return EndIf EndFunc ;==>MFCheckDownHMP Func MFCheckDownCBF() ;CBF If $InetSizeCBF = 0 Then Return EndIf If $InetSizeCBF <> FileGetSize(@ScriptDir & '\ComboFix.exe') Then TrayTip("Ошибка загрузки!", "Повторно загружаю ComboFix." & @LF & "Ожидайте завершения.", 30, 3) Sleep(100) InetGet($CBFFulAdr, @ScriptDir & '\ComboFix.exe', 1, 0) MFCheckDownCBF() Else Return EndIf EndFunc ;==>MFCheckDownCBF Func MFCheckDownAnVirTM() ;AnVir Task Manager If $InetSizeAnVirTM = 0 Then Return EndIf ;AnVir Task Manager If $InetSizeAnVirTM <> FileGetSize(@ScriptDir & '\anvirrus.zip') Then TrayTip("Ошибка загрузки!", "Повторно загружаю AnVir Task Manager." & @LF & "Ожидайте завершения.", 30, 3) Sleep(100) InetGet($AdrAnvirTM, @ScriptDir & '\anvirrus.zip', 1, 0) MFCheckDownAnVirTM() Else Return EndIf EndFunc ;==>MFCheckDownAnVirTM Func MFUnPackAVZ() If $InetSizeAVZ > 0 Then RunWait(@TempDir & '\7z.exe x "' & @ScriptDir & '\avz4.zip" "-aoa"', @ScriptDir, @SW_HIDE) Else Return EndIf If FileExists(@ScriptDir & '\avz4\avz.exe') Then FileDelete(@ScriptDir & '\avz4.zip') EndIf EndFunc ;==>MFUnPackAVZ Func MFUnPackUVS() If $InetSizeUVSP > 0 Then RunWait(@TempDir & '\7z.exe x "' & @ScriptDir & '\' & $UVSFileName & '" "-o' & @ScriptDir & '\UVS" "-aoa"', @ScriptDir, @SW_HIDE) Else Return EndIf If FileExists(@ScriptDir & '\UVS\start.exe') Then FileDelete(@ScriptDir & '\' & $UVSFileName) EndIf EndFunc ;==>MFUnPackUVS Func MFUnPackUVSMAIN() If $InetSizeUVSB > 0 Then RunWait(@TempDir & '\7z.exe x "' & @ScriptDir & '\MAIN.zip" "-o' & @ScriptDir & '\UVS\SHA" "-aoa"', @ScriptDir, @SW_HIDE) Else Return EndIf If FileExists(@ScriptDir & '\UVS\SHA\MAIN') Then FileDelete(@ScriptDir & '\MAIN.zip') EndIf EndFunc ;==>MFUnPackUVSMAIN Func MFUnPackGMER() If $InetSizeGMER > 0 Then RunWait(@TempDir & '\7z.exe x "' & @ScriptDir & '\gmer.zip" "-aoa"', @ScriptDir, @SW_HIDE) Else Return EndIf If FileExists(@ScriptDir & '\gmer.exe') Then FileDelete(@ScriptDir & '\gmer.zip') EndIf EndFunc ;==>MFUnPackGMER Func MFUnPackCCE() If $InetSizeCOMUT > 0 And FileGetSize(@ScriptDir & '\CCE.zip') = $InetSizeCOMUT Then RunWait(@TempDir & '\7z.exe x "' & @ScriptDir & '\CCE.zip" "-aoa"', @ScriptDir, @SW_HIDE) Else Return EndIf If FileExists(@ScriptDir & '\CCE\Autoruns.exe') Then FileDelete(@ScriptDir & '\CCE.zip') ; Записывает значение. FileOpen(@ScriptDir & '\CCE\Data\CCE\config.ini', 10) IniWrite(@ScriptDir & '\CCE\Data\CCE\config.ini', "option", "AutorunsLanguageId", "1049") IniWrite(@ScriptDir & '\CCE\Data\CCE\config.ini', "option", "ThemeName", "COMODO NormalColor NormalSize") IniWrite(@ScriptDir & '\CCE\Data\CCE\config.ini', "option", "CCELanguageId", "1049") IniWrite(@ScriptDir & '\CCE\Data\CCE\config.ini', "option", "KillSwitchLanguageId", "1049") FileClose(@ScriptDir & '\CCE\Data\CCE\config.ini') FileDelete(@ScriptDir & '\CCE\Translations\Autoruns.Chinese.lang') FileDelete(@ScriptDir & '\CCE\Translations\CCE.Chinese.lang') FileDelete(@ScriptDir & '\CCE\Translations\FileExplorer.Chinese.lang') FileDelete(@ScriptDir & '\CCE\Translations\KillSwitch.Chinese.lang') FileDelete(@ScriptDir & '\CCE\EULA.txt') EndIf EndFunc ;==>MFUnPackCCE Func MFUnPackEEK() If $InetSizeEKit > 0 And FileGetSize(@ScriptDir & '\EEK.zip') = $InetSizeEKit Then RunWait(@TempDir & '\7z.exe x "' & @ScriptDir & '\EEK.zip" "-o' & @ScriptDir & '\EEKit" "-aoa"', @ScriptDir, @SW_HIDE) Else MFCheckDownEEK() EndIf If FileExists(@ScriptDir & '\EEKit\start.exe') Then FileDelete(@ScriptDir & '\EEK.zip') ;Удаление лишнего FileDelete(@ScriptDir & '\EEKit\Languages\ar-sa.lng') FileDelete(@ScriptDir & '\EEKit\Languages\cz-cz.lng') FileDelete(@ScriptDir & '\EEKit\Languages\de-de.lng') FileDelete(@ScriptDir & '\EEKit\Languages\fr-fr.lng') FileDelete(@ScriptDir & '\EEKit\Languages\nl-nl.lng') FileDelete(@ScriptDir & '\EEKit\Languages\pl-pl.lng') FileDelete(@ScriptDir & '\EEKit\Languages\pt-br.lng') FileDelete(@ScriptDir & '\EEKit\Languages\sl-si.lng') FileDelete(@ScriptDir & '\EEKit\Languages\tr-tr.lng') FileDelete(@ScriptDir & '\EEKit\Languages\vi-vn.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\ar-sa.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\bg-bg.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\ca-es.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\cn-cn.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\cz-cz.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\de-de.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\en-us.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\es-es.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\fa-ir.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\fi-fi.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\fr-fr.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\gr-gr.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\hr-hr.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\hu-hu.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\it-it.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\ja-jp.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\nl-nl.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\pl-pl.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\pt-br.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\sl-si.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\sr-sp.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\sv-se.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\tr-tr.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\ua-ua.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\vi-vn.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\zh-tw.lng') EndIf EndFunc ;==>MFUnPackEEK Func MFUnPackVTU() Local $InfoVTU = $InetSizeVTU If $InfoVTU > 0 Then ; Переменные для распаковки файла VirusTotal Uploader RunWait(@TempDir & '\7z.exe x ' & $VUploaderFulAdrN & ' ' & $VUploaderF, @TempDir, @SW_HIDE) Else Return EndIf If FileExists(@TempDir & '\' & $VUploaderF) Then FileCopy(@TempDir & '\' & $VUploaderF, @ScriptDir & '\' & $VUploaderF) EndIf EndFunc ;==>MFUnPackVTU Func MFUnPackAnVirTM() If $InetSizeAnVirTM > 0 Then RunWait(@TempDir & '\7z.exe x "' & @ScriptDir & '\anvirrus.zip" "-o' & @ScriptDir & '\AnVir Task Manager" "-aoa"', @ScriptDir, @SW_HIDE) Else Return EndIf If FileExists(@ScriptDir & '\AnVir Task Manager\AnVir.exe') Then FileDelete(@ScriptDir & '\anvirrus.zip') EndIf EndFunc ;==>MFUnPackAnVirTM Func MFClearTemp() RunWait(@ComSpec & " /c " & 'cd /d "%temp%" && rd /s /q "."', "", @SW_HIDE) EndFunc ;==>MFClearTemp ;******************************************************************************************************************************************* ;******************************************************************************************************************************************* ;Функция загрузки Dr.Web Func _1() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) If FileGetSize(@ScriptDir & '\drweb-cureit.exe') = $InetSizeDrWeb Then Return EndIf If $InetSizeDrWeb > 0 Then TrayTip("Загрузка.", "Загружаю антивирусную утилиту от Dr.Web.", 3, 1 + 16) Sleep(100) ProgressOn('Скачивание файла', 'Dr.WEB-CureIt', '0 %', -1, -1, 18) Local $hDownloadDr = InetGet('http://download.geo.drweb.com/pub/drweb/cureit/drweb-cureit.exe', @ScriptDir & '\drweb-cureit.exe', 1, 1) Do If InetGetInfo($hDownloadDr, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadDr, 0) / InetGetInfo($hDownloadDr, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadDr, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadDr, 1)) & ')') TraySetState(1) TraySetToolTip('Dr.Web CureIt! загружен на ' & $iPersent & ' %') EndIf Sleep(500) Until InetGetInfo($hDownloadDr, 2) InetClose($hDownloadDr) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл drweb-cureit.exe на сервере отсутствует', 3) Return EndIf Local $FileSizeDF = FileGetSize(@ScriptDir & "\drweb-cureit.exe") Sleep(500) If $InetSizeDrWeb <> $FileSizeDF Then _1() EndIf ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'Утилита - drweb-cureit.exe загружена ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' ' & $DrWeb) FileClose($file) EndIf EndFunc ;==>_1 ;Функция загрузки Kaspersky Func _2() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) If FileGetSize(@ScriptDir & '\' & $sFileNameK) = $InetSizeKasp Then Local $OldFiles = _FileListToArray(@ScriptDir, 'setup*.exe', 1) $OldFiles[0] -= 1 For $i = 1 To $OldFiles[0] FileDelete(@ScriptDir & "\" & $OldFiles[$i]) Next Return EndIf $OldFiles = _FileListToArray(@ScriptDir, 'setup*.exe', 1) If @error = 4 Then Sleep(500) Else For $i = 1 To $OldFiles[0] FileDelete(@ScriptDir & "\" & $OldFiles[$i]) Next EndIf If $InetSizeKasp > 0 Then TrayTip("Загрузка.", "Загружаю антивирусную утилиту от Kaspersky.", 3, 1 + 16) Sleep(100) ProgressOn('Скачивание файла', 'KasperskyAVPTool', '0 %', -1, -1, 18) Local $hDownloadK = InetGet($sLastLinkK, @ScriptDir & '\' & $sFileNameK, 1, 1) Do If InetGetInfo($hDownloadK, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadK, 0) / InetGetInfo($hDownloadK, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadK, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadK, 1)) & ')') TraySetState(1) TraySetToolTip('KasperskyAVPTool загружен на ' & $iPersent & ' %') EndIf Sleep(500) Until InetGetInfo($hDownloadK, 2) InetClose($hDownloadK) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл KasperskyAVPTool на сервере отсутствует', 3) Return EndIf Local $FileSize = FileGetSize(@ScriptDir & '\' & $sFileNameK) Sleep(500) If $InetSizeKasp <> $FileSize Then _2() EndIf ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'Утилита - ' & $sFileNameK & ' загружена ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' ' & $Kasp) FileClose($file) EndIf EndFunc ;==>_2 ;Функция загрузки MBAM Func _3() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) If FileGetSize(@ScriptDir & '\' & $mFileShName) = $InetSizeMBAM Then Local $OldFiles = _FileListToArray(@ScriptDir, 'mbam-setup-*.exe', 1) $OldFiles[0] -= 1 For $i = 1 To $OldFiles[0] FileDelete(@ScriptDir & "\" & $OldFiles[$i]) Next Return EndIf $OldFiles = _FileListToArray(@ScriptDir, 'mbam-setup-*.exe', 1) If @error = 4 Then Sleep(500) Else For $i = 1 To $OldFiles[0] FileDelete(@ScriptDir & "\" & $OldFiles[$i]) Next EndIf If $InetSizeMBAM > 0 Then TrayTip("Загрузка.", "Загружаю антивирусную утилиту от MBAM.", 3, 1 + 16) Sleep(100) ProgressOn('Скачивание файла', 'MBAM', '0 %', -1, -1, 18) Local $hDownloadMB = InetGet($mFileName, @ScriptDir & '\' & $mFileShName, 1, 1) Do If InetGetInfo($hDownloadMB, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadMB, 0) / InetGetInfo($hDownloadMB, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadMB, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadMB, 1)) & ')') TraySetState(1) TraySetToolTip('MBAM загружен на ' & $iPersent & ' %') EndIf Sleep(500) Until InetGetInfo($hDownloadMB, 2) InetClose($hDownloadMB) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл ' & $mFileShName & ' на сервере отсутствует', 3) Return EndIf Local $FileSizem = FileGetSize(@ScriptDir & '\' & $mFileShName) Sleep(500) If $InetSizeMBAM <> $FileSizem Then _3() EndIf ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else Local $V = FileGetVersion(@ScriptDir & '\' & $mFileShName) $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'Утилита - mbam-setup.exe загружена ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' Версия ' & $V) FileClose($file) EndIf EndFunc ;==>_3 ;Функция загрузки AVZ Func _4() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) ;Получение версии для AVZ 3 If FileExists(@ScriptDir & '\avz4\avz.exe') Then Local $1GetA = StringRegExp(BinaryToString(InetRead('http://z-oleg.com/', 1), 4), '(?i)[\<]font class[\=][\"]smalltext[\"][\>][\:] [\<]strong[\>](.*?)[\<][\/]strong[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Доступ к утилите AVZ не возможен', 5) Return Else Local $1AVZ = $1GetA[0] EndIf Local $2ver = FileGetVersion(@ScriptDir & '\avz4\avz.exe') Local $2GetAV = StringRegExp($2ver, '[\d+\.]{4}', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Ошибка получения версии', 5) Return Else Local $2AVZV = $2GetAV[0] EndIf If $2AVZV = $1AVZ Then Return EndIf EndIf If FileGetSize(@ScriptDir & '\avz4.zip') = $InetSizeAVZ Then MFUnPackAVZ() EndIf If $InetSizeAVZ > 0 Then TrayTip("Загрузка.", "Загружаю антивирусную утилиту AVZ.", 3, 1 + 16) Sleep(100) ProgressOn('Скачивание файла', 'AVZ', '0 %', -1, -1, 18) Local $hDownloadAV = InetGet('http://z-oleg.com/avz4.zip', @ScriptDir & '\avz4.zip', 1, 1) Do If InetGetInfo($hDownloadAV, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadAV, 0) / InetGetInfo($hDownloadAV, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadAV, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadAV, 1)) & ')') TraySetState(1) TraySetToolTip('AVZ загружен на ' & $iPersent & ' %') EndIf Sleep(500) Until InetGetInfo($hDownloadAV, 2) InetClose($hDownloadAV) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл AVZ на сервере отсутствует', 3) Return EndIf Local $FileSizea = FileGetSize(@ScriptDir & '\avz4.zip') Sleep(500) If $InetSizeAVZ <> $FileSizea Then _4() EndIf Run(@TempDir & '\7z.exe x "' & @ScriptDir & '\avz4.zip" "-aoa"', @ScriptDir, @SW_HIDE) Local $sFileG = @TempDir & '\3.gif' Local $aGIFDimension = _GIF_GetDimension($sFileG) Local $hGuiG = GUICreate('GIF Animation', $aGIFDimension[0], $aGIFDimension[1], 1, 1, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST)) Local $hGIF = _GUICtrlCreateGIF($sFileG, '', 0, 0) GUICtrlSetState(-1, $GUI_DISABLE) GUIRegisterMsg($WM_NCHITTEST, 'WM_NCHITTEST') GUISetBkColor(345) _WinAPI_SetLayeredWindowAttributes($hGuiG, 345, 255) _WinAPI_SetParent($hGuiG, 0) GUISetState() Do Until Not ProcessExists("7z.exe") GUIDelete($hGuiG) If FileExists(@ScriptDir & '\avz4\avz.exe') Then FileDelete(@ScriptDir & '\avz4.zip') EndIf ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else Local $Va = FileGetVersion(@ScriptDir & '\avz4\avz.exe') $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'Утилита - avz.exe загружена ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' Версия ' & $Va) FileClose($file) EndIf EndFunc ;==>_4 ;Функция загрузки HijackThis Func _5() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) If FileGetSize(@ScriptDir & "\HijackThis.exe") = $InetSizeHiJack Then Return EndIf If $sLastLink <> '0' Then TrayTip("Загрузка.", "Загружаю антивирусную утилиту HijackThis.", 3, 1 + 16) Sleep(100) ProgressOn('Скачивание файла', 'HijackThis', '0 %', -1, -1, 18) Local $hDownloadHi = InetGet($sLastLink, @ScriptDir & '\HijackThis.exe', 1, 1) Do If InetGetInfo($hDownloadHi, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadHi, 0) / InetGetInfo($hDownloadHi, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadHi, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadHi, 1)) & ')') TraySetState(1) TraySetToolTip('HijackThis загружен на ' & $iPersent & ' %') EndIf Sleep(500) Until InetGetInfo($hDownloadHi, 2) InetClose($hDownloadHi) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл HijackThis на сервере отсутствует', 3) Return EndIf Local $FileSizehij = FileGetSize(@ScriptDir & "\HijackThis.exe") Sleep(500) If $InetSizeHiJack <> $FileSizehij Then _5() EndIf ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else Local $Vhij = FileGetVersion(@ScriptDir & '\HijackThis.exe') $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'Утилита - HijackThis.exe загружена ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' Версия ' & $Vhij) FileClose($file) EndIf EndFunc ;==>_5 ;Функция загрузки Universal Virus Sniffer Func _6() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) If FileExists(@ScriptDir & '\UVS\start.exe') Then Return EndIf If FileGetSize(@ScriptDir & '\' & $UVSFileName) = $InetSizeUVSP Then MFUnPackUVS() EndIf If $InetSizeUVSP > 0 Then TrayTip("Загрузка.", "Загружаю антивирусную утилиту Universal Virus Sniffer.", 3, 1 + 16) Sleep(100) ProgressOn('Скачивание файла', 'UVS', '0 %', -1, -1, 18) Local $hDownloadUv = InetGet($AllLink, @ScriptDir & '\' & $UVSFileName, 1, 1) Do If InetGetInfo($hDownloadUv, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadUv, 0) / InetGetInfo($hDownloadUv, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadUv, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadUv, 1)) & ')') TraySetState(1) TraySetToolTip('Universal Virus Sniffer загружен на ' & $iPersent & ' %') EndIf Sleep(500) Until InetGetInfo($hDownloadUv, 2) InetClose($hDownloadUv) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл UVS на сервере отсутствует', 3) Return EndIf Local $FileSizeu = FileGetSize(@ScriptDir & '\' & $UVSFileName) Sleep(500) If $InetSizeUVSP <> $FileSizeu Then _6() EndIf Run(@TempDir & '\7z.exe x "' & @ScriptDir & '\' & $UVSFileName & '" "-o' & @ScriptDir & '\UVS" "-aoa"', @ScriptDir, @SW_HIDE) Local $sFileG = @TempDir & '\3.gif' Local $aGIFDimension = _GIF_GetDimension($sFileG) Local $hGuiG = GUICreate('GIF Animation', $aGIFDimension[0], $aGIFDimension[1], 1, 1, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST)) Local $hGIF = _GUICtrlCreateGIF($sFileG, '', 0, 0) GUICtrlSetState(-1, $GUI_DISABLE) GUIRegisterMsg($WM_NCHITTEST, 'WM_NCHITTEST') GUISetBkColor(345) _WinAPI_SetLayeredWindowAttributes($hGuiG, 345, 255) _WinAPI_SetParent($hGuiG, 0) GUISetState() Do Until Not ProcessExists("7z.exe") GUIDelete($hGuiG) FileDelete(@ScriptDir & '\' & $UVSFileName) ;Загрузка базы файлов If FileGetSize(@ScriptDir & '\MAIN.zip') = $InetSizeUVSB Then MFUnPackUVSMAIN() EndIf If FileExists(@ScriptDir & '\UVS\SHA\MAIN') And FileGetSize(@ScriptDir & '\MAIN.zip') = InetGetSize('http://dsrt.dyndns.org/files/MAIN.zip', 1) Then Return EndIf If $InetSizeUVSB > 0 Then TrayTip("Загрузка.", "Загружаю базу утилиты Universal Virus Sniffer.", 3, 1 + 16) Sleep(100) ProgressOn('Скачивание файла', 'MAIN UVS', '0 %', -1, -1, 18) Local $hDownloadUvB = InetGet('http://dsrt.dyndns.org/files/MAIN.zip', @ScriptDir & '\MAIN.zip', 1, 1) Do If InetGetInfo($hDownloadUvB, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadUvB, 0) / InetGetInfo($hDownloadUvB, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadUvB, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadUvB, 1)) & ')') TraySetState(1) TraySetToolTip('База для Universal Virus Sniffer загружена на ' & $iPersent & ' %') EndIf Sleep(500) Until InetGetInfo($hDownloadUvB, 2) InetClose($hDownloadUvB) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл MAIN UVS на сервере отсутствует', 3) Return EndIf Local $FileSize2 = FileGetSize(@ScriptDir & '\MAIN.zip') Sleep(500) If $InetSizeUVSB <> $FileSize2 Then _6() EndIf Run(@TempDir & '\7z.exe x "' & @ScriptDir & '\MAIN.zip" "-o' & @ScriptDir & '\UVS\SHA" "-aoa"', @ScriptDir, @SW_HIDE) Local $sFileG2 = @TempDir & '\3.gif' Local $aGIFDimension2 = _GIF_GetDimension($sFileG) Local $hGuiG2 = GUICreate('GIF Animation', $aGIFDimension2[0], $aGIFDimension2[1], 1, 1, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST)) _GUICtrlCreateGIF($sFileG2, '', 0, 0) GUICtrlSetState(-1, $GUI_DISABLE) GUIRegisterMsg($WM_NCHITTEST, 'WM_NCHITTEST') GUISetBkColor(345) _WinAPI_SetLayeredWindowAttributes($hGuiG2, 345, 255) _WinAPI_SetParent($hGuiG2, 0) GUISetState() Do Until Not ProcessExists("7z.exe") GUIDelete($hGuiG2) If FileExists(@ScriptDir & '\UVS\SHA\MAIN') Then FileDelete(@ScriptDir & '\MAIN.zip') EndIf ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'Утилита - Universal Virus Sniffer загружена ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' ' & $UVS) FileClose($file) EndIf EndFunc ;==>_6 ;Функция загрузки GMER Func _7() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) If FileExists(@ScriptDir & '\gmer.exe') Then Return EndIf If FileGetSize(@ScriptDir & "\gmer.zip") = $InetSizeGMER Then MFUnPackGMER() EndIf If $InetSizeGMER > 0 Then TrayTip("Загрузка.", "Загружаю антивирусную утилиту GMER.", 3, 1 + 16) Sleep(100) ProgressOn('Скачивание файла', 'GMER', '0 %', -1, -1, 18) Local $hDownloadG = InetGet('http://www2.gmer.net/gmer.zip', @ScriptDir & '\gmer.zip', 1, 1) Do If InetGetInfo($hDownloadG, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadG, 0) / InetGetInfo($hDownloadG, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadG, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadG, 1)) & ')') TraySetState(1) TraySetToolTip('GMER загружен на ' & $iPersent & ' %') EndIf Sleep(500) Until InetGetInfo($hDownloadG, 2) InetClose($hDownloadG) ProgressOff() Else MsgBox('', '', 'Файл gmer.zip на сервере отсутствует', 3) Return EndIf Sleep(500) Local $FileSizegm = FileGetSize(@ScriptDir & "\gmer.zip") Sleep(500) If $InetSizeGMER <> $FileSizegm Then _7() EndIf Run(@TempDir & '\7z.exe x "' & @ScriptDir & '\gmer.zip" "-o' & @ScriptDir & '\" "-aoa"', @ScriptDir, @SW_HIDE) Local $sFileG = @TempDir & '\3.gif' Local $aGIFDimension = _GIF_GetDimension($sFileG) Local $hGuiG = GUICreate('GIF Animation', $aGIFDimension[0], $aGIFDimension[1], 1, 1, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST)) Local $hGIF = _GUICtrlCreateGIF($sFileG, '', 0, 0) GUICtrlSetState(-1, $GUI_DISABLE) GUIRegisterMsg($WM_NCHITTEST, 'WM_NCHITTEST') GUISetBkColor(345) _WinAPI_SetLayeredWindowAttributes($hGuiG, 345, 255) _WinAPI_SetParent($hGuiG, 0) GUISetState() Do Until Not ProcessExists("7z.exe") GUIDelete($hGuiG) FileDelete(@ScriptDir & '\gmer.zip') ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else Local $Vers = FileGetVersion('gmer.exe') $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'Утилита - gmer.exe загружена ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' Версия ' & $Vers) FileClose($file) EndIf EndFunc ;==>_7 ;Функция загрузки McAfee-Stinger Func _8() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) If FileGetSize(@ScriptDir & '\' & StringRegExpReplace($LastMc, '\d', '')) <> InetGetSize($LinkMc, 1) Then If $InetSizeMcafi > 0 Then TrayTip("Загрузка.", "Загружаю антивирусную утилиту McAfee-Stinger.", 3, 1 + 16) Sleep(100) ProgressOn('Скачивание файла', 'McAfee-Stinger', '0 %', -1, -1, 18) Local $hDownloadMa = InetGet($LinkMc, @ScriptDir & '\' & StringRegExpReplace($LastMc, '\d', ''), 1, 1) Do If InetGetInfo($hDownloadMa, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadMa, 0) / InetGetInfo($hDownloadMa, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadMa, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadMa, 1)) & ')') TraySetState(1) TraySetToolTip('McAfee-Stinger загружен на ' & $iPersent & ' %') EndIf Sleep(500) Until InetGetInfo($hDownloadMa, 2) InetClose($hDownloadMa) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл McAfee-Stinger на сервере отсутствует', 3) Return EndIf EndIf Local $FileSizeMf = FileGetSize(@ScriptDir & '\' & StringRegExpReplace($LastMc, '\d', '')) Sleep(500) If $InetSizeMcafi <> $FileSizeMf Then _8() EndIf ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'Утилита - ' & $LastMc & ' загружена ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' ' & $McA) FileClose($file) EndIf EndFunc ;==>_8 ;Функция загрузки COMODO Cleaning Essentials Func _9() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) If FileExists(@ScriptDir & '\CCE\Autoruns.exe') Then Local $1GetCOM = StringRegExp(BinaryToString(InetRead('http://www.comodo.com/business-security/network-protection/cleaning_essentials.php', 1), 4), '"href_vxp_32":"http://download.comodo.com/cce/download/setups/cce_(.*?)_x32.zip"', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Доступ к утилите CCE не возможен', 5) Local $1COM = '0' Else Local $1COM = $1GetCOM[0] EndIf Local $2ver = FileGetVersion(@ScriptDir & '\CCE\Autoruns.exe', 'ProductVersion') Local $2GetCOM = StringRegExp($2ver, '\d+\.\d+\.\d+\.\d+', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Ошибка получения версии', 5) Local $2COMV = '0' Else Local $2COMV = $2GetCOM[0] EndIf If $1COM = $2COMV Then Return EndIf EndIf If FileGetSize(@ScriptDir & '\CCE.zip') = $InetSizeCOMUT Then MFUnPackCCE() EndIf If $InetSizeCOMUT > 0 Then TrayTip("Загрузка.", "Загружаю антивирусную утилиту COMODO Cleaning Essentials.", 3, 1 + 16) Sleep(100) ProgressOn('Скачивание файла', 'COMODO Cleaning Essentials', '0 %', -1, -1, 18) Local $DComodo = InetGet($DownComodoS, @ScriptDir & '\CCE.zip', 1, 1) Do If InetGetInfo($DComodo, 1) Then Local $iPersent = Round((InetGetInfo($DComodo, 0) / InetGetInfo($DComodo, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($DComodo, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($DComodo, 1)) & ')') TraySetState(1) TraySetToolTip('COMODO Cleaning Essentials загружен на ' & $iPersent & ' %') EndIf Sleep(500) Until InetGetInfo($DComodo, 2) InetClose($DComodo) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл COMODO Cleaning Essentials на сервере отсутствует', 3) Return EndIf Local $FileSizecce = FileGetSize(@ScriptDir & '\CCE.zip') Sleep(500) If $InetSizeCOMUT <> $FileSizecce Then _9() EndIf Run(@TempDir & '\7z.exe x "' & @ScriptDir & '\CCE.zip" "-aoa"', @ScriptDir, @SW_HIDE) Local $sFileG = @TempDir & '\3.gif' Local $aGIFDimension = _GIF_GetDimension($sFileG) Local $hGuiG = GUICreate('GIF Animation', $aGIFDimension[0], $aGIFDimension[1], 1, 1, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST)) Local $hGIF = _GUICtrlCreateGIF($sFileG, '', 0, 0) GUICtrlSetState(-1, $GUI_DISABLE) GUIRegisterMsg($WM_NCHITTEST, 'WM_NCHITTEST') GUISetBkColor(345) _WinAPI_SetLayeredWindowAttributes($hGuiG, 345, 255) _WinAPI_SetParent($hGuiG, 0) GUISetState() Do Until Not ProcessExists("7z.exe") GUIDelete($hGuiG) FileDelete(@ScriptDir & '\CCE.zip') ; Записывает значение. FileOpen(@ScriptDir & '\CCE\Data\CCE\config.ini', 10) IniWrite(@ScriptDir & '\CCE\Data\CCE\config.ini', "option", "AutorunsLanguageId", "1049") IniWrite(@ScriptDir & '\CCE\Data\CCE\config.ini', "option", "ThemeName", "COMODO NormalColor NormalSize") IniWrite(@ScriptDir & '\CCE\Data\CCE\config.ini', "option", "CCELanguageId", "1049") IniWrite(@ScriptDir & '\CCE\Data\CCE\config.ini', "option", "KillSwitchLanguageId", "1049") FileClose(@ScriptDir & '\CCE\Data\CCE\config.ini') FileDelete(@ScriptDir & '\CCE\Translations\Autoruns.Chinese.lang') FileDelete(@ScriptDir & '\CCE\Translations\CCE.Chinese.lang') FileDelete(@ScriptDir & '\CCE\Translations\FileExplorer.Chinese.lang') FileDelete(@ScriptDir & '\CCE\Translations\KillSwitch.Chinese.lang') FileDelete(@ScriptDir & '\CCE\EULA.txt') ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else Local $FVers = FileGetVersion(@ScriptDir & '\CCE\Autoruns.exe', 'ProductVersion') $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'Утилита - COMODO Cleaning Essentials загружена ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' Версия ' & $FVers) FileClose($file) EndIf EndFunc ;==>_9 ;Функция загрузки Emsisoft Emergency Kit Func _10() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) ;Получение версии для файла Emsisoft Emergency Kit If FileExists(@ScriptDir & '\EEKit\Run\a2emergencykit.exe') Then Local $3ver = FileGetVersion(@ScriptDir & '\EEKit\Run\a2emergencykit.exe', 'FileVersion') Local $GetAdrEKitVer = StringRegExp(BinaryToString(InetRead('http://www.emsisoft.com/en/software/eek/'), 4), '\d+[\.]\d+[\.]\d+[\.]\d+', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Доступ к утилите Emsisoft Emergency Kit не возможен', 5) Local $EKitFulVVer = '0' Else Local $EKitFulVVer = $GetAdrEKitVer[0] EndIf If $3ver = $EKitFulVVer Then Return EndIf EndIf If FileGetSize(@ScriptDir & '\EEKit.zip') = $InetSizeEKit Then MFUnPackEEK() EndIf If $InetSizeEKit > 0 Then TrayTip("Загрузка.", "Загружаю антивирусную утилиту Emsisoft Emergency Kit.", 3, 1 + 16) Sleep(100) ProgressOn('Скачивание файла', 'Emsisoft Emergency Kit', '0 %', -1, -1, 18) Local $DownEEKit = InetGet($EEKitFAdr, @ScriptDir & '\EEKit.zip', 1, 1) Do If InetGetInfo($DownEEKit, 1) Then Local $iPersent = Round((InetGetInfo($DownEEKit, 0) / InetGetInfo($DownEEKit, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($DownEEKit, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($DownEEKit, 1)) & ')') TraySetState(1) TraySetToolTip('Emsisoft Emergency Kit загружен на ' & $iPersent & ' %') EndIf Sleep(500) Until InetGetInfo($DownEEKit, 2) InetClose($DownEEKit) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл Emsisoft Emergency Kit на сервере отсутствует', 3) Return EndIf Local $FileSizeE = FileGetSize(@ScriptDir & '\EEKit.zip') Sleep(500) If $InetSizeEKit <> $FileSizeE Then _10() EndIf Run(@TempDir & '\7z.exe x "' & @ScriptDir & '\EEKit.zip" "-o' & @ScriptDir & '\EEKit" "-aoa"', @ScriptDir, @SW_HIDE) Local $sFileG = @TempDir & '\3.gif' Local $aGIFDimension = _GIF_GetDimension($sFileG) Local $hGuiG = GUICreate('GIF Animation', $aGIFDimension[0], $aGIFDimension[1], 1, 1, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST)) Local $hGIF = _GUICtrlCreateGIF($sFileG, '', 0, 0) GUICtrlSetState(-1, $GUI_DISABLE) GUIRegisterMsg($WM_NCHITTEST, 'WM_NCHITTEST') GUISetBkColor(345) _WinAPI_SetLayeredWindowAttributes($hGuiG, 345, 255) _WinAPI_SetParent($hGuiG, 0) GUISetState() Do Until Not ProcessExists("7z.exe") GUIDelete($hGuiG) FileDelete(@ScriptDir & '\EEKit.zip') ; Записывает значение. FileOpen(@ScriptDir & '\EEKit\Run\a2settings.ini', 10) IniWrite(@ScriptDir & '\EEKit\Run\a2settings.ini', "General", "Revision", "1") IniWrite(@ScriptDir & '\EEKit\Run\a2settings.ini', "General", "Language", "ru-ru") IniWrite(@ScriptDir & '\EEKit\Run\a2settings.ini', "General", "SectionsCount", "26") FileClose(@ScriptDir & '\EEKit\Run\a2settings.ini') ;Удаление лишнего FileDelete(@ScriptDir & '\EEKit\Languages\ar-sa.lng') FileDelete(@ScriptDir & '\EEKit\Languages\cz-cz.lng') FileDelete(@ScriptDir & '\EEKit\Languages\de-de.lng') FileDelete(@ScriptDir & '\EEKit\Languages\fr-fr.lng') FileDelete(@ScriptDir & '\EEKit\Languages\nl-nl.lng') FileDelete(@ScriptDir & '\EEKit\Languages\pl-pl.lng') FileDelete(@ScriptDir & '\EEKit\Languages\pt-br.lng') FileDelete(@ScriptDir & '\EEKit\Languages\sl-si.lng') FileDelete(@ScriptDir & '\EEKit\Languages\tr-tr.lng') FileDelete(@ScriptDir & '\EEKit\Languages\vi-vn.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\ar-sa.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\bg-bg.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\ca-es.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\cn-cn.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\cz-cz.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\de-de.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\en-us.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\es-es.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\fa-ir.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\fi-fi.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\fr-fr.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\gr-gr.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\hr-hr.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\hu-hu.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\it-it.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\ja-jp.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\nl-nl.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\pl-pl.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\pt-br.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\sl-si.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\sr-sp.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\sv-se.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\tr-tr.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\ua-ua.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\vi-vn.lng') FileDelete(@ScriptDir & '\EEKit\Run\Languages\zh-tw.lng') ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else Local $FVersE = FileGetVersion(@ScriptDir & '\EEKit\Run\a2emergencykit.exe', 'FileVersion') $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'Утилита - Emsisoft Emergency Kit загружена ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' Версия ' & $FVersE) FileClose($file) EndIf EndFunc ;==>_10 ;Функция загрузки VirusTotal Uploader Func _11() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) If FileExists(@ScriptDir & '\' & $VUploaderF) Then Return EndIf If $InetSizeVTU > 0 Then TrayTip("Загрузка.", "Загружаю антивирусную утилитуVirusTotal Uploader.", 3, 1 + 16) Sleep(100) ProgressOn('Скачивание файла', 'VirusTotal Uploader', '0 %', -1, -1, 18) Local $hDownloadVTU = InetGet($VUploaderFulAdr, @TempDir & '\' & $VUploaderFulAdrN, 1, 1) Do If InetGetInfo($hDownloadVTU, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadVTU, 0) / InetGetInfo($hDownloadVTU, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadVTU, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadVTU, 1)) & ')') TraySetState(1) TraySetToolTip('VirusTotal Uploader загружен на ' & $iPersent & ' %') EndIf Sleep(500) Until InetGetInfo($hDownloadVTU, 2) InetClose($hDownloadVTU) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл VirusTotal Uploader на сервере отсутствует', 3) Return EndIf Local $FileSizeV = FileGetSize(@TempDir & '\' & $VUploaderFulAdrN) Sleep(500) If $InetSizeVTU <> $FileSizeV Then _11() EndIf Run(@TempDir & '\7z.exe x ' & $VUploaderFulAdrN & ' ' & $VUploaderF, @TempDir, @SW_HIDE) Local $sFileG = @TempDir & '\3.gif' Local $aGIFDimension = _GIF_GetDimension($sFileG) Local $hGuiG = GUICreate('GIF Animation', $aGIFDimension[0], $aGIFDimension[1], 1, 1, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST)) Local $hGIF = _GUICtrlCreateGIF($sFileG, '', 0, 0) GUICtrlSetState(-1, $GUI_DISABLE) GUIRegisterMsg($WM_NCHITTEST, 'WM_NCHITTEST') GUISetBkColor(345) _WinAPI_SetLayeredWindowAttributes($hGuiG, 345, 255) _WinAPI_SetParent($hGuiG, 0) GUISetState() Do Until Not ProcessExists("7z.exe") GUIDelete($hGuiG) FileCopy(@TempDir & '\' & $VUploaderF, @ScriptDir & '\' & $VUploaderF) FileDelete(@TempDir & '\' & $VUploaderF) FileDelete(@TempDir & '\' & $VUploaderFulAdrN) ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'Утилита - ' & $VUploaderF & ' загружена ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' ' & $VUploaderFulAdrV) FileClose($file) EndIf EndFunc ;==>_11 ;Функция загрузки Hitman Pro Func _12() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) If FileExists(@ScriptDir & '\' & $FNHMP) And FileGetSize(@ScriptDir & '\' & $FNHMP) = $InetSizeHPS Then Return EndIf If $InetSizeHPS = 0 Then MsgBox('', '', 'Файл Hitman Pro на сервере отсутствует', 3) Return EndIf TrayTip("Загрузка.", "Загружаю антивирусную утилиту Hitman Pro.", 3, 1 + 16) Sleep(100) ProgressOn('Скачивание файла', 'Hitman Pro', '0 %', -1, -1, 18) Local $hDownloadHMP = InetGet($DownHPS, @ScriptDir & '\' & $FNHMP, 1, 1) Do If InetGetInfo($hDownloadHMP, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadHMP, 0) / InetGetInfo($hDownloadHMP, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadHMP, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadHMP, 1)) & ')') TraySetState(1) TraySetToolTip('Hitman Pro загружен на ' & $iPersent & ' %') EndIf Sleep(500) Until InetGetInfo($hDownloadHMP, 2) InetClose($hDownloadHMP) ProgressOff() Sleep(500) Local $FileSizeV = FileGetSize(@ScriptDir & '\' & $FNHMP) Sleep(500) If $InetSizeHPS <> $FileSizeV Then _12() EndIf ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'Утилита - ' & $FNHMP & ' загружена ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' ' & $HPFulDataU) FileClose($file) EndIf EndFunc ;==>_12 ;Функция загрузки ComboFix Func _13() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) ;Получение адреса для ComboFix Local $GetCBFAdrL = StringRegExp(BinaryToString(InetRead('http://www.bleepingcomputer.com/download/combofix/dl/12/'), 4), '(?i)If the download process does not begin automatically[\,] please [\<]a href[\=].?(.*?).?[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для утилиты ComboFix', 5) Local $CBFFulAdrL = '0' Else Local $CBFFulAdrL = $GetCBFAdrL[0] EndIf Local $InetSizeCBFL = InetGetSize($CBFFulAdrL, 1) If FileGetSize(@ScriptDir & '\ComboFix.exe') = $InetSizeCBFL Then Return EndIf If $InetSizeCBFL = 0 Then MsgBox('', '', 'Файл ComboFix на сервере отсутствует', 3) Return EndIf TrayTip("Загрузка.", "Загружаю антивирусную утилиту ComboFix.", 3, 1 + 16) Sleep(100) ProgressOn('Скачивание файла', 'ComboFix', '0 %', -1, -1, 18) Local $hDownloadCBF = InetGet($CBFFulAdrL, @ScriptDir & '\ComboFix.exe', 1, 1) Do If InetGetInfo($hDownloadCBF, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadCBF, 0) / InetGetInfo($hDownloadCBF, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadCBF, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadCBF, 1)) & ')') TraySetState(1) TraySetToolTip('ComboFix загружен на ' & $iPersent & ' %') EndIf Sleep(500) Until InetGetInfo($hDownloadCBF, 2) InetClose($hDownloadCBF) ProgressOff() Sleep(500) Local $FS = FileGetSize(@ScriptDir & '\ComboFix.exe') If $InetSizeCBFL <> $FS Then _13() EndIf If FileExists(@ScriptDir & '\ComboFix.exe') Then Local $CBFV = FileGetVersion(@ScriptDir & '\ComboFix.exe') Else Local $CBFV = 'Файл отсутствует' EndIf Sleep(500) ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'Утилита - ComboFix.exe загружена ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' ' & $CBFFulDataU) FileClose($file) EndIf EndFunc ;==>_13 ;Функция загрузки AnVir Task Manager Func _14() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) ;Получение версии для файла AnVir Task Manager If FileExists(@ScriptDir & '\AnVir Task Manager\AnVir.exe') Then Local $Anver = FileGetVersion(@ScriptDir & '\AnVir Task Manager\AnVir.exe', 'FileVersion') Else Local $Anver = '0.0.0' EndIf Local $AnverSTR = StringRegExp($Anver, '(?i)\d+\.\d+\.\d+', 1) If @error Then Local $AnverSTR2 = '0' Else Local $AnverSTR2 = $AnverSTR[0] EndIf If $AnverSTR3 = $AnverSTR2 Then Return EndIf If FileGetSize(@ScriptDir & '\anvirrus.zip') = $InetSizeAnVirTM Then MFUnPackAnVirTM() EndIf If $InetSizeAnVirTM > 0 Then TrayTip("Загрузка.", "Загружаю антивирусную утилиту AnVir Task Manager.", 3, 1 + 16) Sleep(100) ProgressOn('Скачивание файла', 'AnVir Task Manager', '0 %', -1, -1, 18) Local $DownATM = InetGet($AdrAnvirTM, @ScriptDir & '\anvirrus.zip', 1, 1) Do If InetGetInfo($DownATM, 1) Then Local $iPersent = Round((InetGetInfo($DownATM, 0) / InetGetInfo($DownATM, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($DownATM, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($DownATM, 1)) & ')') TraySetState(1) TraySetToolTip('AnVir Task Manager загружен на ' & $iPersent & ' %') EndIf Sleep(500) Until InetGetInfo($DownATM, 2) InetClose($DownATM) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл AnVir Task Manager на сервере отсутствует', 3) Return EndIf Local $FileSizeATM = FileGetSize(@ScriptDir & '\anvirrus.zip') Sleep(500) If $InetSizeAnVirTM <> $FileSizeATM Then _14() EndIf Run(@TempDir & '\7z.exe x "' & @ScriptDir & '\anvirrus.zip" "-o' & @ScriptDir & '\AnVir Task Manager" "-aoa"', @ScriptDir, @SW_HIDE) Local $sFileG = @TempDir & '\3.gif' Local $aGIFDimension = _GIF_GetDimension($sFileG) Local $hGuiG = GUICreate('GIF Animation', $aGIFDimension[0], $aGIFDimension[1], 1, 1, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST)) Local $hGIF = _GUICtrlCreateGIF($sFileG, '', 0, 0) GUICtrlSetState(-1, $GUI_DISABLE) GUIRegisterMsg($WM_NCHITTEST, 'WM_NCHITTEST') GUISetBkColor(345) _WinAPI_SetLayeredWindowAttributes($hGuiG, 345, 255) _WinAPI_SetParent($hGuiG, 0) GUISetState() Do Until Not ProcessExists("7z.exe") GUIDelete($hGuiG) FileDelete(@ScriptDir & '\anvirrus.zip') ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else Local $FVersATM = FileGetVersion(@ScriptDir & '\AnVir Task Manager\AnVir.exe', 'FileVersion') $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'Утилита - AnVir Task Manager загружена ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' Версия ' & $FVersATM) FileClose($file) EndIf EndFunc ;==>_14 ;******************************************************************************************************************************************* ;******************************************************************************************************************************************* ;Функция загрузки Dr.Web LiveCD Func _15() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) ;Переменные для Dr.Web LiveCD Local $GetDrLCD = StringRegExp(BinaryToString(InetRead('http://download.geo.drweb.com/pub/drweb/livecd/', 1), 4), '(?i)[\<]a href[\=]"(.*?)">drweb[\-].*iso[\<]/a[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для Dr.Web LiveCD', 5) Local $DrFulAdr = '0' Else Local $DrFulAdr = 'http://download.geo.drweb.com/pub/drweb/livecd/' & $GetDrLCD[0] EndIf Local $FileSize = FileGetSize(@ScriptDir & '\' & $GetDrLCD[0]) If $hDownloadDrLCD = $FileSize Then Return EndIf If $hDownloadDrLCD > 0 Then ProgressOn('Скачивание файла', 'Dr.Web LiveCD', '0 %', -1, -1, 18) Local $hDownloadDrLCD = InetGet($DrFulAdr, @ScriptDir & '\' & $GetDrLCD[0], 1, 1) Do If InetGetInfo($hDownloadDrLCD, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadDrLCD, 0) / InetGetInfo($hDownloadDrLCD, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadDrLCD, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadDrLCD, 1)) & ')') TraySetState(1) TraySetToolTip($iPersent & ' % загружено') EndIf Sleep(500) Until InetGetInfo($hDownloadDrLCD, 2) InetClose($hDownloadDrLCD) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл Dr.Web LiveCD на сервере отсутствует', 3) Return EndIf Sleep(500) If InetGetSize($DrFulAdr, 1) <> $FileSize Then TrayTip("Ошибка загрузки!", "Повторно загружаю Dr.Web LiveCD." & @LF & "Ожидайте завершения.", 5, 3) Sleep(100) _15() EndIf ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'Dr.Web LiveCD залит ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' ' & $DrFulDataC) FileClose($file) EndIf EndFunc ;==>_15 ;Функция загрузки Dr.Web LiveUSB Func _16() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) ;Переменные для Dr.Web LiveUSB Local $GetDrLCD2F = StringRegExp(BinaryToString(InetRead('http://download.geo.drweb.com/pub/drweb/liveusb/win/', 1), 4), '(?i)[\<]a href[\=]"drwebliveusb[\.]exe"[\>](.*?)[\<]/a[\>]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для Dr.Web LiveUSB', 5) Local $DrFulAdr2 = '0' Local $DrFulnAME = '0' Else Local $DrFulnAME = $GetDrLCD2F[0] Local $DrFulAdr2 = 'http://download.geo.drweb.com/pub/drweb/liveusb/win/' & $GetDrLCD2F[0] EndIf Local $FileSize = FileGetSize(@ScriptDir & '\' & $DrFulnAME) If $hDownloadDrUSB = $FileSize Then Return EndIf If $hDownloadDrUSB > 0 Then ProgressOn('Скачивание файла', 'Dr.Web LiveUSB', '0 %', -1, -1, 18) Local $hDownloadDrUSB2 = InetGet($DrFulAdr2, @ScriptDir & '\' & $DrFulnAME, 1, 1) Do If InetGetInfo($hDownloadDrUSB2, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadDrUSB2, 0) / InetGetInfo($hDownloadDrUSB2, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadDrUSB2, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadDrUSB2, 1)) & ')') TraySetState(1) TraySetToolTip($iPersent & ' % загружено') EndIf Sleep(500) Until InetGetInfo($hDownloadDrUSB2, 2) InetClose($hDownloadDrUSB2) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл Dr.Web LiveUSB на сервере отсутствует', 3) Return EndIf Sleep(500) If InetGetSize($DrFulAdr2, 1) <> $FileSize Then TrayTip("Ошибка загрузки!", "Повторно загружаю Dr.Web LiveUSB." & @LF & "Ожидайте завершения.", 5, 3) Sleep(100) _16() EndIf ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'Dr.Web LiveUSB залит ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' ' & $DrFulDataU) FileClose($file) EndIf EndFunc ;==>_16 ;Функция загрузки Kaspersky Rescue Disk Func _17() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) ;Переменные для Kaspersky Rescue Disk Local $GetNameKLCD = StringRegExp(BinaryToString(InetRead('http://support.kaspersky.com/viruses/rescuedisk/main', 1), 4), '(?i)href[\=]"(.*?)"[\>]Distributive', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для Kaspersky Rescue Disk1', 5) Local $KFulAdr = '0' Else Local $KFulAdr = $GetNameKLCD[0] EndIf $sPattern = '[\/].*[\/](.*)$' $NameKLCD = StringRegExp($KFulAdr, $sPattern, 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для Kaspersky Rescue Disk2', 5) Local $KFulName = '0' Else Local $KFulName = $NameKLCD[0] EndIf If InetGetSize($KFulAdr, 1) = FileGetSize(@ScriptDir & '\' & $KFulName) Then Return EndIf If InetGetSize($KFulAdr, 1) > 0 Then ProgressOn('Скачивание файла', 'Kaspersky Rescue Disk', '0 %', -1, -1, 18) Local $hDownloadKavDown = InetGet($KFulAdr, @ScriptDir & '\' & $KFulName, 1, 1) Do If InetGetInfo($hDownloadKavDown, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadKavDown, 0) / InetGetInfo($hDownloadKavDown, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadKavDown, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadKavDown, 1)) & ')') TraySetState(1) TraySetToolTip($iPersent & ' % загружено') EndIf Sleep(500) Until InetGetInfo($hDownloadKavDown, 2) InetClose($hDownloadKavDown) ProgressOff() Sleep(500) If InetGetSize($KFulAdr, 1) <> FileGetSize(@ScriptDir & '\' & $KFulName) Then TrayTip("Ошибка загрузки!", "Повторно загружаю Kaspersky Rescue Disk." & @LF & "Ожидайте завершения.", 5, 3) _17() EndIf Else MsgBox('', '', 'Файл Kaspersky Rescue Disk на сервере отсутствует', 3) Return EndIf Sleep(500) ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'Kaspersky Rescue Disk залит ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' ' & $KFulAdrV) FileClose($file) EndIf EndFunc ;==>_17 ;Функция загрузки Avira AntiVir Rescue System Func _18() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) ;Переменные для Avira AntiVir Rescue System Local $AviraFulAdr = 'http://professional.avira-update.com/package/rescue_system/common/en/rescue_system-common-en.iso' Local $FileSize = FileGetSize(@ScriptDir & '\rescue_system-common-en.iso') If $hDownloadAvira = $FileSize Then Return EndIf If $hDownloadAvira > 0 Then ProgressOn('Скачивание файла', 'Avira AntiVir Rescue System', '0 %', -1, -1, 18) Local $hDownloadAvira2 = InetGet($AviraFulAdr, @ScriptDir & '\rescue_system-common-en.iso', 1, 1) Do If InetGetInfo($hDownloadAvira2, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadAvira2, 0) / InetGetInfo($hDownloadAvira2, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadAvira2, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadAvira2, 1)) & ')') TraySetState(1) TraySetToolTip($iPersent & ' % загружено') EndIf Sleep(500) Until InetGetInfo($hDownloadAvira2, 2) InetClose($hDownloadAvira2) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл Avira AntiVir Rescue System на сервере отсутствует', 3) Return EndIf Sleep(500) Local $FileSize = FileGetSize(@ScriptDir & '\rescue_system-common-en.iso') If InetGetSize($AviraFulAdr, 1) <> $FileSize Then TrayTip("Ошибка загрузки!", "Повторно загружаю Avira AntiVir Rescue System." & @LF & "Ожидайте завершения.", 5, 3) Sleep(100) _18() EndIf ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'Avira AntiVir Rescue System залит ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' ' & $AFulAdr) FileClose($file) EndIf EndFunc ;==>_18 ;Функция загрузки LiveCD ESET NOD32 Func _19() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) ;Переменные для LiveCD ESET NOD32 Local $GetAdrESET = StringRegExp(BinaryToString(InetRead('http://www.esetnod32.ru/.download/livecd/', 1), 4), '(?i)[\ 0 Then ProgressOn('Скачивание файла', 'LiveCD ESET NOD32', '0 %', -1, -1, 18) Local $hDownloadESET2 = InetGet($ESETFulAdr, @ScriptDir & '\eset_sysrescue.iso', 1, 1) Do If InetGetInfo($hDownloadESET2, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadESET2, 0) / InetGetInfo($hDownloadESET2, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadESET2, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadESET2, 1)) & ')') TraySetState(1) TraySetToolTip($iPersent & ' % загружено') EndIf Sleep(500) Until InetGetInfo($hDownloadESET2, 2) InetClose($hDownloadESET2) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл LiveCD ESET NOD32 на сервере отсутствует', 3) Return EndIf Sleep(500) If InetGetSize($ESETFulAdr, 1) <> $FileSize Then TrayTip("Ошибка загрузки!", "Повторно загружаю LiveCD ESET NOD32." & @LF & "Ожидайте завершения.", 5, 3) Sleep(100) _19() EndIf ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'LiveCD ESET NOD32 залит ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' ' & $NODFulAdr) FileClose($file) EndIf EndFunc ;==>_19 ;Функция загрузки BitDefenderRescueCD Func _20() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) ;Переменные для BitDefenderRescueCD Local $GetAdrBit = StringRegExp(BinaryToString(InetRead('http://download.bitdefender.com/rescue_cd/', 1), 4), '(?i)[\"]BitDefenderRescueCD_v.*iso[\"][\>](.*?)[\<]', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для BitDefenderRescueCD', 5) Local $BitFulAdr = '0' Else Local $BitFulAdr = 'http://download.bitdefender.com/rescue_cd/' & $GetAdrBit[0] EndIf Local $FileSize = FileGetSize(@ScriptDir & '\BitDefenderRescueCD.iso') If $hDownloadBit = $FileSize Then Return EndIf If $hDownloadBit > 0 Then ProgressOn('Скачивание файла', 'BitDefenderRescueCD', '0 %', -1, -1, 18) Local $hDownloadBit2 = InetGet($BitFulAdr, @ScriptDir & '\BitDefenderRescueCD.iso', 1, 1) Do If InetGetInfo($hDownloadBit2, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadBit2, 0) / InetGetInfo($hDownloadBit2, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadBit2, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadBit2, 1)) & ')') TraySetState(1) TraySetToolTip($iPersent & ' % загружено') EndIf Sleep(500) Until InetGetInfo($hDownloadBit2, 2) InetClose($hDownloadBit2) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл BitDefenderRescueCD на сервере отсутствует', 3) Return EndIf Sleep(500) If InetGetSize($BitFulAdr, 1) <> $FileSize Then TrayTip("Ошибка загрузки!", "Повторно загружаю BitDefenderRescueCD." & @LF & "Ожидайте завершения.", 5, 3) Sleep(100) _20() EndIf ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'BitDefender RescueCD залит ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' ' & $BitDefFulAdr) FileClose($file) EndIf EndFunc ;==>_20 ;Функция загрузки Trend Micro Rescue Disk Func _21() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) If InetGetSize('http://www.trendmicro.com/ftp/products/rescuedisk/RescueDisk.exe', 1) = FileGetSize(@ScriptDir & '\RescueDisk.exe') Then Return EndIf If InetGetSize('http://www.trendmicro.com/ftp/products/rescuedisk/RescueDisk.exe', 1) > 0 Then ProgressOn('Скачивание файла', 'Trend Micro Rescue Disk', '0 %', -1, -1, 18) Local $hDownloadTMicroL = InetGet('http://www.trendmicro.com/ftp/products/rescuedisk/RescueDisk.exe', @ScriptDir & '\RescueDisk.exe', 1, 1) Do If InetGetInfo($hDownloadTMicroL, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadTMicroL, 0) / InetGetInfo($hDownloadTMicroL, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadTMicroL, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadTMicroL, 1)) & ')') TraySetState(1) TraySetToolTip($iPersent & ' % загружено') EndIf Sleep(500) Until InetGetInfo($hDownloadTMicroL, 2) InetClose($hDownloadTMicroL) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл Trend Micro Rescue Disk на сервере отсутствует', 3) Return EndIf Sleep(500) If InetGetSize('http://www.trendmicro.com/ftp/products/rescuedisk/RescueDisk.exe', 1) <> FileGetSize(@ScriptDir & '\RescueDisk.exe') Then TrayTip("Ошибка загрузки!", "Повторно загружаю Trend Micro Rescue Disk." & @LF & "Ожидайте завершения.", 5, 3) Sleep(100) _21() EndIf ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'Trend Micro Rescue Disk залит ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' ' & $TrendFulAdr) FileClose($file) EndIf EndFunc ;==>_21 ;Функция загрузки eScanLiveCD Func _22() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) ;Переменные для eScanLiveCD Global $GetAdreScan = StringRegExp(BinaryToString(InetRead('http://www.avescan.ru/download/', 1), 4), '(?i)escanrd[\.]iso.*href="(.*?)" class="downp"', 3) If @error Then MsgBox(48 + 262144, 'Error', 'Невозможно получить адрес для eScanLiveCD', 5) Global $eScanFulAdr = '0' Else Global $eScanFulAdr = 'http://www.avescan.ru' & $GetAdreScan[0] EndIf If InetGetSize($eScanFulAdr, 1) = FileGetSize(@ScriptDir & '\escanrd.iso') Then Return EndIf If InetGetSize($eScanFulAdr, 1) > 0 Then ProgressOn('Скачивание файла', 'eScan LiveCD', '0 %', -1, -1, 18) Local $hDownloadeScan2 = InetGet($eScanFulAdr, @ScriptDir & '\escanrd.iso', 1, 1) Do If InetGetInfo($hDownloadeScan2, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadeScan2, 0) / InetGetInfo($hDownloadeScan2, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadeScan2, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadeScan2, 1)) & ')') TraySetState(1) TraySetToolTip($iPersent & ' % загружено') EndIf Sleep(500) Until InetGetInfo($hDownloadeScan2, 2) InetClose($hDownloadeScan2) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл eScanLiveCD на сервере отсутствует', 3) Return EndIf Sleep(500) If InetGetSize($eScanFulAdr, 1) <> FileGetSize(@ScriptDir & '\escanrd.iso') Then TrayTip("Ошибка загрузки!", "Повторно загружаю eScanLiveCD." & @LF & "Ожидайте завершения.", 5, 3) Sleep(100) _22() EndIf ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'eScan LiveCD залит ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' ' & $eScanFulAdrV) FileClose($file) EndIf EndFunc ;==>_22 ;Функция загрузки Comodo Rescue Disk Func _23() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) If InetGetSize($COFAdrCD, 1) = FileGetSize(@ScriptDir & '\Comodo Rescue Disk.iso') Then Return EndIf If InetGetSize($COFAdrCD, 1) > 0 Then ProgressOn('Скачивание файла', 'Comodo Rescue Disk', '0 %', -1, -1, 18) Local $hDownloadComodCD = InetGet($COFAdrCD, @ScriptDir & '\Comodo Rescue Disk.iso', 1, 1) Do If InetGetInfo($hDownloadComodCD, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadComodCD, 0) / InetGetInfo($hDownloadComodCD, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadComodCD, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadComodCD, 1)) & ')') TraySetState(1) TraySetToolTip($iPersent & ' % загружено') EndIf Sleep(500) Until InetGetInfo($hDownloadComodCD, 2) InetClose($hDownloadComodCD) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл Comodo Rescue Disk на сервере отсутствует', 3) Return EndIf Sleep(500) If InetGetSize($COFAdrCD, 1) <> FileGetSize(@ScriptDir & '\Comodo Rescue Disk.iso') Then TrayTip("Ошибка загрузки!", "Повторно загружаю Comodo Rescue Disk." & @LF & "Ожидайте завершения.", 5, 3) Sleep(100) _23() EndIf ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'Comodo Rescue Disk залит ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' ' & $COFAdrCDV) FileClose($file) EndIf EndFunc ;==>_23 ;Функция загрузки AVG Rescue CD Func _24() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) If $hDownloadeAVG = FileGetSize(@ScriptDir & '\AVG Rescue CD.iso') Then Return EndIf If $hDownloadeAVG > 0 Then ProgressOn('Скачивание файла', 'AVG Rescue CD', '0 %', -1, -1, 18) Local $hDownloadAVGCD = InetGet($AVGFul, @ScriptDir & '\AVG Rescue CD.iso', 1, 1) Do If InetGetInfo($hDownloadAVGCD, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadAVGCD, 0) / InetGetInfo($hDownloadAVGCD, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadAVGCD, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadAVGCD, 1)) & ')') TraySetState(1) TraySetToolTip($iPersent & ' % загружено') EndIf Sleep(500) Until InetGetInfo($hDownloadAVGCD, 2) InetClose($hDownloadAVGCD) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл AVG Rescue CD на сервере отсутствует', 3) Return EndIf Sleep(500) If InetGetSize($AVGFul, 1) <> FileGetSize(@ScriptDir & '\AVG Rescue CD.iso') Then TrayTip("Ошибка загрузки!", "Повторно загружаю AVG Rescue CD." & @LF & "Ожидайте завершения.", 5, 3) Sleep(100) _24() EndIf ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'AVG Rescue CD залит ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' ' & $AVGFulV) FileClose($file) EndIf EndFunc ;==>_24 ;Функция загрузки TrustPort LiveCD Func _25() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) If $hDownloadeTP = FileGetSize(@ScriptDir & '\TrustPort LiveCD.iso') Then Return EndIf If $hDownloadeTP > 0 Then ProgressOn('Скачивание файла', 'TrustPort LiveCD', '0 %', -1, -1, 18) Local $hDownloadTP = InetGet($GetNAdrTP, @ScriptDir & '\TrustPort LiveCD.iso', 1, 1) Do If InetGetInfo($hDownloadTP, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadTP, 0) / InetGetInfo($hDownloadTP, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadTP, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadTP, 1)) & ')') TraySetState(1) TraySetToolTip($iPersent & ' % загружено') EndIf Sleep(500) Until InetGetInfo($hDownloadTP, 2) InetClose($hDownloadTP) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл TrustPort LiveCD на сервере отсутствует', 3) Return EndIf Sleep(500) If InetGetSize($GetNAdrTP, 1) <> FileGetSize(@ScriptDir & '\TrustPort LiveCD.iso') Then TrayTip("Ошибка загрузки!", "Повторно загружаю TrustPort LiveCD." & @LF & "Ожидайте завершения.", 5, 3) Sleep(100) _25() EndIf ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'TrustPort LiveCD залит ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' ' & $TPFulAdrV) FileClose($file) EndIf EndFunc ;==>_25 ;Функция загрузки VBA32 Rescue Func _26() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) If $hDownloadeVBA = FileGetSize(@ScriptDir & '\vbarescue.iso') Then Return EndIf If $hDownloadeVBA > 0 Then ProgressOn('Скачивание файла', 'VBA32 Rescue', '0 %', -1, -1, 18) Local $hDownloadVBA = InetGet($VBAFulAdr, @ScriptDir & '\vbarescue.iso', 1, 1) Do If InetGetInfo($hDownloadVBA, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadVBA, 0) / InetGetInfo($hDownloadVBA, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadVBA, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadVBA, 1)) & ')') TraySetState(1) TraySetToolTip($iPersent & ' % загружено') EndIf Sleep(500) Until InetGetInfo($hDownloadVBA, 2) InetClose($hDownloadVBA) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл VBA32 Rescue на сервере отсутствует', 3) Return EndIf Sleep(500) If InetGetSize($VBAFulAdr, 1) <> FileGetSize(@ScriptDir & '\vbarescue.iso') Then TrayTip("Ошибка загрузки!", "Повторно загружаю VBA32 Rescue." & @LF & "Ожидайте завершения.", 5, 3) Sleep(100) _26() EndIf ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'VBA32 Rescue залит ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' ' & $VBAFulDataU) FileClose($file) EndIf EndFunc ;==>_26 ;Функция загрузки AntiSMS Func _27() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) If $hDownloadeSMS = 0 Then Return EndIf If FileGetSize(@ScriptDir & '\AntiSMS.iso') = $hDownloadeSMS Then Return EndIf If $hDownloadeSMS > 0 Then ProgressOn('Скачивание файла', 'AntiSMS', '0 %', -1, -1, 18) Local $hDownloadSMS = InetGet($SMSFulAdr, @ScriptDir & '\AntiSMS.iso', 1, 1) Do If InetGetInfo($hDownloadSMS, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadSMS, 0) / InetGetInfo($hDownloadSMS, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadSMS, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadSMS, 1)) & ')') TraySetState(1) TraySetToolTip($iPersent & ' % загружено') EndIf Sleep(500) Until InetGetInfo($hDownloadSMS, 2) InetClose($hDownloadSMS) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл AntiSMS на сервере отсутствует', 3) Return EndIf Sleep(500) If InetGetSize($SMSFulAdr, 1) <> FileGetSize(@ScriptDir & '\AntiSMS.iso') Then TrayTip("Ошибка загрузки!", "Повторно загружаю AntiSMS." & @LF & "Ожидайте завершения.", 5, 3) Sleep(100) _27() Else Return EndIf ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'AntiSMS LiveCD залит ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' ' & $SMSFulDataU) FileClose($file) EndIf EndFunc ;==>_27 ;Функция загрузки PC Tools AOSS LiveCD Func _28() GUISetState(@SW_HIDE, $hGui) GUISetState(@SW_HIDE, $dGUI) GUISetState(@SW_HIDE, $dGUI2) If $InetSizePCTCD = 0 Then Return EndIf If FileGetSize(@ScriptDir & '\AOSS.iso') = $InetSizePCTCD Then Return EndIf If $InetSizePCTCD > 0 Then ProgressOn('Скачивание файла', 'PC Tools AOSS LiveCD', '0 %', -1, -1, 18) Local $hDownloadPCT = InetGet($DownPCT, @ScriptDir & '\AOSS.iso', 1, 1) Do If InetGetInfo($hDownloadPCT, 1) Then Local $iPersent = Round((InetGetInfo($hDownloadPCT, 0) / InetGetInfo($hDownloadPCT, 1)) * 100) ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadPCT, 0)) _ & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadPCT, 1)) & ')') TraySetState(1) TraySetToolTip($iPersent & ' % загружено') EndIf Sleep(500) Until InetGetInfo($hDownloadPCT, 2) InetClose($hDownloadPCT) ProgressOff() Sleep(500) Else MsgBox('', '', 'Файл PC Tools AOSS LiveCD на сервере отсутствует', 3) Return EndIf Sleep(500) If InetGetSize($DownPCT, 1) <> FileGetSize(@ScriptDir & '\AOSS.iso') Then TrayTip("Ошибка загрузки!", "Повторно загружаю PC Tools AOSS LiveCD." & @LF & "Ожидайте завершения.", 5, 3) Sleep(100) _28() Else Return EndIf ; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл If $file = -1 Then MsgBox(4096, "Ошибка", "Невозможно открыть файл для записи.", 5) Return Else $file = FileOpen(@ScriptDir & '\logdown.log', 1) FileWriteLine($file, 'PC Tools AOSS LiveCD залит ' & @MDAY & '-' & @MON & ' в ' & @HOUR & '-' & @MIN & ' ' & $mFileNameP) FileClose($file) EndIf EndFunc ;==>_28 ;Функция выхода по горячей клавише Func MFProExit() Exit EndFunc ;==>MFProExit Func WM_NCHITTEST($hWnd, $Msg, $wParam, $lParam) Local $iProc = DllCall('user32.dll', 'int', 'DefWindowProc', 'hwnd', $hWnd, 'int', _ $Msg, 'wparam', $wParam, 'lparam', $lParam) If $iProc[0] = $HTCLIENT Then Return $HTCAPTION Return $GUI_RUNDEFMSG EndFunc ;==>WM_NCHITTEST