Здравствуйте.
Использую AutoIt: v3.3.8.1
Подскажите, что не так. При выборе нескольких "чекбоксов" (т.е. нескольких функций) первый отрабатывает, а второй нет.
Использую AutoIt: v3.3.8.1
Подскажите, что не так. При выборе нескольких "чекбоксов" (т.е. нескольких функций) первый отрабатывает, а второй нет.
Код:
#include <GUIConstantsEx.au3>
#include <GUIConstants.au3>
#include <INet.au3>
#include <WinAPIEx.au3>
#include <File.au3>
#include <Array.au3>
#include <Zip_UDF.au3>
Global $Chack1 = False, $Chack2 = False, $Chack3 = False, $Chack4 = False
$URL = 'http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool11/'
$HTML = _INetGetSource($URL)
$Reg = StringRegExp($HTML, '<a href="(.*?)"', 3)
$sUrl = 'http://samlab.ws/category/antivirus/'
$sSourse = InetRead($sUrl, 17)
$Form1 = GUICreate("DAU", 200, 160)
GUICtrlCreateLabel("Загрузить антивирусные утилиты", 15, 10)
$Checkbox1 = GUICtrlCreateCheckbox("Dr.WEB-CureIt", 8, 40)
$Checkbox2 = GUICtrlCreateCheckbox("KasperskyAVPTool", 8, 60)
$Checkbox3 = GUICtrlCreateCheckbox("Malwarebytes", 8, 80)
$Checkbox4 = GUICtrlCreateCheckbox("AVZ", 8, 100)
$Button1 = GUICtrlCreateButton("Загрузить", 55, 130, 90)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Checkbox1
If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
$Chack1 = True
Else
$Chack1 = False
EndIf
Case $Checkbox2
If GUICtrlRead($Checkbox2) = $GUI_CHECKED Then
$Chack2 = True
Else
$Chack2 = False
EndIf
Case $Checkbox3
If GUICtrlRead($Checkbox3) = $GUI_CHECKED Then
$Chack3 = True
Else
$Chack3 = False
EndIf
Case $Checkbox4
If GUICtrlRead($Checkbox4) = $GUI_CHECKED Then
$Chack4 = True
Else
$Chack4 = False
EndIf
Case $Button1
If $Chack1 Then _1()
If $Chack2 Then _2()
If $Chack3 Then _3()
If $Chack4 Then _4()
If (Not $Chack1) And (Not $Chack2) And (Not $Chack3) And (Not $Chack4) Then
MsgBox(16, 'Error', 'Ничего не выбрано!!!')
EndIf
EndSwitch
WEnd
Func _1()
GUISetState(@SW_HIDE)
ProgressOn('Скачивание файла', 'Dr.WEB-CureIt', '0 %')
$hDownload = InetGet('http://download.geo.drweb.com/pub/drweb/cureit/drweb-cureit.exe', @ScriptDir & '\drweb-cureit.exe', 1, 1)
Do
If InetGetInfo($hDownload, 1) Then
$iPersent = Round((InetGetInfo($hDownload, 0) / InetGetInfo($hDownload, 1)) * 100)
ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownload, 0)) & _
' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownload, 1)) & ')')
EndIf
Sleep(500)
Until InetGetInfo($hDownload, 2)
InetClose($hDownload)
ProgressOff()
EndFunc ;==>_1
Func _2()
GUISetState(@SW_HIDE)
ProgressOn('Скачивание файла', 'KasperskyAVPTool', '0 %')
$hDownload = InetGet($URL & $Reg[UBound($Reg) - 1], @ScriptDir & '\' & $Reg[UBound($Reg) - 1], 1, 1)
Do
If InetGetInfo($hDownload, 1) Then
$iPersent = Round((InetGetInfo($hDownload, 0) / InetGetInfo($hDownload, 1)) * 100)
ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownload, 0)) & _
' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownload, 1)) & ')')
EndIf
Sleep(500)
Until InetGetInfo($hDownload, 2)
InetClose($hDownload)
ProgressOff()
EndFunc ;==>_2
Func _3()
GUISetState(@SW_HIDE)
If @error Then
MsgBox(16, 'Error', 'InetRead')
Exit
EndIf
$sSourse = BinaryToString($sSourse)
$sLink = StringRegExpReplace($sSourse, '(?s).*href="(http://data-cdn.mbamupdates.com/.*?exe)">.*', '$1')
If @extended = 1 Then
$sFileName = StringRegExpReplace($sLink, '', '')
;MsgBox(0, 'Info', $sFileName)
Else
MsgBox(16, 'Error', 'StringRegExpReplace')
Exit
EndIf
ProgressOn('Скачивание файла', 'MBAM', '0 %')
$hDownload = InetGet($sFileName, @ScriptDir & '\mbam-setup.exe', 1, 1)
Do
If InetGetInfo($hDownload, 1) Then
$iPersent = Round((InetGetInfo($hDownload, 0) / InetGetInfo($hDownload, 1)) * 100)
ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownload, 0)) & _
' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownload, 1)) & ')')
EndIf
Sleep(500)
Until InetGetInfo($hDownload, 2)
InetClose($hDownload)
ProgressOff()
EndFunc ;==>_3
Func _4()
GUISetState(@SW_HIDE)
ProgressOn('Скачивание файла', 'AVZ', '0 %')
$hDownload = InetGet('http://z-oleg.com/avz4.zip', @ScriptDir & '\avz4.zip', 1, 1)
Do
If InetGetInfo($hDownload, 1) Then
$iPersent = Round((InetGetInfo($hDownload, 0) / InetGetInfo($hDownload, 1)) * 100)
ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownload, 0)) & _
' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownload, 1)) & ')')
EndIf
Sleep(500)
Until InetGetInfo($hDownload, 2)
InetClose($hDownload)
ProgressOff()
; Parameters for test
$ZipFile = @ScriptDir & "\avz4.zip"
$DestFolder = @ScriptDir
$UseExternalZipApp = False
ProgressOn('Распаковка архива', 'avz4.zip', '0 %')
$size = DirGetSize($DestFolder)
$RetCode = _UnZip($ZipFile, $DestFolder)
Do
If $RetCode Then
ProgressSet($iPersent, $iPersent&'%,'&_WinAPI_StrFormatByteSize($size)&'('&_WinAPI_StrFormatByteSize($size)&')')
EndIf
Sleep(500)
Until $size
ProgressOff()
FileDelete(@ScriptDir & "\avz4.zip")
EndFunc ;==>_4