Здравствуйте.
Использую AutoIt 3.3.8.1
Подскажите как передать ссылку на загрузку из IE в
На этой странице http://www.oracle.com/technetwork/java/javase/downloads/jre7u9-downloads-1859586.html нужно в браузере нажать чекбокс "согласия" и после ссылка становится доступной. Я использую такой скрипт:
Но почему то загрузка обрывается и скрипт вылетает. Хотя чекбокс нажимается. Ведь
использует тот же IE
Подскажите может я неправильно что-то делаю?
Использую AutoIt 3.3.8.1
Подскажите как передать ссылку на загрузку из IE в
Код:
InetGet
На этой странице http://www.oracle.com/technetwork/java/javase/downloads/jre7u9-downloads-1859586.html нужно в браузере нажать чекбокс "согласия" и после ссылка становится доступной. Я использую такой скрипт:
Код:
#include <WinAPIEx.au3>
#include <IE.au3>
If @OSArch = 'X64' Then
$HKLM = 'HKLM64'
Else
$HKLM = 'HKLM'
EndIf
;#####################################################Получение имени кнопки на странице с JAVA
$A6 = StringRegExp(BinaryToString(InetRead('http://www.oracle.com/technetwork/java/javase/downloads/index.html', 1), 4), '(?i)Java SE 6 users upgrade to this release[\.] [\<]span class[\=]"bluearrows"[\>][\<]a href[\=]"(.*?)" target[\=]""[\>]Learn more', 3)
If @error Then
$B6 = '0'
Else
$B6 = 'http://www.oracle.com'&$A6[0]
EndIf
$C6 = StringRegExp(BinaryToString(InetRead($B6, 1), 4), '(?i)Current Version[\<]/strong[\>] [\<]ul[\>]\s+[\<]li[\>][\<]a href=".*"[\>]Changes in (.*?)[\<]/a[\>][\<]/li[\>] [\<]/ul[\>] [\<]strong[\>]Earlier', 3)
If @error Then
$D6 = '0'
Else
$D6 = $C6[0]
$Da6 = StringRegExpReplace($D6, '...', '')
EndIf
$A7 = StringRegExp(BinaryToString(InetRead('http://www.oracle.com/technetwork/java/javase/downloads/index.html', 1), 4), '(?i)Mac and Linux x86/x64[\.][\<]br /[\>]\s+[\<]span class[\=]"bluearrows"[\>][\<]a href[\=]"(.*?)" target[\=]""[\>]Learn more', 3)
If @error Then
$B7 = '0'
Else
$B7 = 'http://www.oracle.com'&$A7[0]
EndIf
$C7 = StringRegExp(BinaryToString(InetRead($B7, 1), 4), '(?i)Current Version.*<ul>\s+<li><a href=".*" target="">Changes in.*[\_](.*?)[\<].*Earlier', 3)
If @error Then
$D7 = '0'
Else
$D7 = $C7[0]
$Da7 = StringRegExpReplace($D7, '^0', '')
EndIf
$agreement6 = 'agreementFormjdk-6u'&$Da6&'-oth-JPR'
$agreement7 = 'agreementFormjdk-7u'&$Da7&'-oth-JPR'
;Получение адресов на страницу загрузки ЯВА
$UrlD7 = StringRegExp(BinaryToString(InetRead('http://www.oracle.com/technetwork/java/javase/downloads/index.html', 1), 4), '(?i)JRE</h.*<div align="center"><a href="(.*?)" target=""><img border=.*public', 3)
If @error Then
$UForeIE7 = '0'
Else
$UForeIE7 = 'http://www.oracle.com'&$UrlD7[0]
EndIf
$UrlD6 = StringRegExp(BinaryToString(InetRead('http://www.oracle.com/technetwork/java/javase/downloads/index.html', 1), 4), '(?i)target="" href="(.*?)"[\>][\<]img border[\=]".*public/[\@]ocom/documents/digitalasset/1612430.*Download JRE.*JRE 6 Docs', 3)
If @error Then
$UForeIE6 = '0'
Else
$UForeIE6 = 'http://www.oracle.com'&$UrlD6[0]
EndIf
;Получение адресов на страницу загрузки ЯВА
;#####################################################Получение имени кнопки на странице с JAVA
_7()
;--------------------Функция загрузки Java SE Runtime Environment
Func _7()
;Для 7-й версии явы
If RegRead($HKLM&"\SOFTWARE\JavaSoft\Java Runtime Environment", "CurrentVersion") = '1.7' Then
Local $oIE = _IECreate ($UForeIE7, 0, 0)
_IELoadWait ($oIE)
ClickById($oIE, $agreement7)
$UrlZagJRE7 = StringRegExp(BinaryToString(InetRead('http://www.oracle.com/technetwork/java/javase/downloads/index.html', 1), 4), '(?i)center"[\>]JRE[\<]/h3[\>]\s+[\<]div align[\=]"center"[\>][\<]a href[\=]"(.*?)" target', 3)
If @error Then
$SourseUrl7 = '0'
Else
$SourseUrl7 = 'http://www.oracle.com'&$UrlZagJRE7[0]
If @OSArch <> 'X64' Then
$UrlJRE7 = StringRegExp(BinaryToString(InetRead($SourseUrl7, 1), 4), '(?i)Windows x86 Offline"[\,] "size"[\:]"\d+.*MB"[\,]"filepath"[\:]"(.*?)"[\}]', 3)
If @error Then
$AdrJRE = '0'
Else
$AdrJRE = $UrlJRE7[0]
EndIf
Else
$UrlJRE = StringRegExp(BinaryToString(InetRead($SourseUrl7, 1), 4), '(?i)(?i)Windows x64"[\,] "size"[\:]"\d+.*MB"[\,]"filepath"[\:]"(.*?)"[\}]', 3)
If @error Then
$AdrJRE = '0'
Else
$AdrJRE = $UrlJRE[0]
ProgressOn('Скачивание', 'Java SE Runtime Environment', '0 %', -1, -1, 18)
EndIf
EndIf
ProgressOn('Скачивание', 'Java SE Runtime', '0 %', -1, -1, 18)
Local $hDownloadJAVA = InetGet($AdrJRE, @ScriptDir & '\Java SE.exe', 1, 1)
Do
If InetGetInfo($hDownloadJAVA, 1) Then
Local $iPersent = Round((InetGetInfo($hDownloadJAVA, 0) / InetGetInfo($hDownloadJAVA, 1)) * 100)
ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadJAVA, 0)) _
& ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadJAVA, 1)) & ')')
TraySetState(1)
TraySetToolTip('Java SE Runtime загружен на '&$iPersent&' %')
EndIf
Sleep(500)
Until InetGetInfo($hDownloadJAVA, 2)
InetClose($hDownloadJAVA)
ProgressOff()
_IEQuit ($oIE)
EndIf
EndIf
;#############################################################################################
;Для 6-й версии явы
If RegRead($HKLM&"\SOFTWARE\JavaSoft\Java Runtime Environment", "CurrentVersion") = '1.6' Then
Local $oIE = _IECreate ($UForeIE6, 0, 0)
_IELoadWait ($oIE)
ClickById($oIE, $agreement6)
$UrlZagJRE6 = StringRegExp(BinaryToString(InetRead('http://www.oracle.com/technetwork/java/javase/downloads/index.html', 1), 4), '(?i)Third Party Licenses[\<]/a[\>][\<]/li[\>].*Certified System Configurations[\<]/a[\>][\<]/li[\>].*JRE[\<]/h3[\>].*[\<]a target[\=]"" href[\=]"(.*?)"[\>]', 3)
If @error Then
$SourseUrl6 = '0'
Else
$SourseUrl6 = 'http://www.oracle.com'&$UrlZagJRE6[0]
EndIf
If @OSArch <> 'X64' Then
$ADRZagJRE = StringRegExp(BinaryToString(InetRead($SourseUrl6, 1), 4), '(?i)Windows x86 Offline"[\,] "size"[\:]"\d+.*MB"[\,]"filepath"[\:]"(.*?)"[\}]', 3)
If @error Then
$AdrJRE = '0'
Else
$AdrJRE = $ADRZagJRE[0]
EndIf
Else
$ADRZagJRE = StringRegExp(BinaryToString(InetRead($SourseUrl6, 1), 4), '(?i)(?i)Windows x64"[\,] "size"[\:]"\d+.*MB"[\,]"filepath"[\:]"(.*?)"[\}]', 3)
If @error Then
$AdrJRE = '0'
Else
$AdrJRE = $ADRZagJRE[0]
EndIf
EndIf
ProgressOn('Скачивание', 'Java SE Runtime Environment', '0 %', -1, -1, 18)
Local $hDownloadJAVA = InetGet($AdrJRE, @ScriptDir&'\Java SE.exe', 1, 1)
Do
If InetGetInfo($hDownloadJAVA, 1) Then
Local $iPersent = Round((InetGetInfo($hDownloadJAVA, 0) / InetGetInfo($hDownloadJAVA, 1)) * 100)
ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadJAVA, 0)) & ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadJAVA, 1)) & ')')
TraySetState(1)
TraySetToolTip('Java SE Runtime Environment загружен на '&$iPersent&' %')
EndIf
Sleep(500)
Until InetGetInfo($hDownloadJAVA, 2)
InetClose($hDownloadJAVA)
ProgressOff()
_IEQuit ($oIE)
EndIf
;Для отсутствующей версии явы
If RegRead($HKLM&"\SOFTWARE\JavaSoft\Java Runtime Environment", "CurrentVersion") < '1.6' Or RegRead($HKLM&"\SOFTWARE\JavaSoft\Java Runtime Environment", "CurrentVersion") > '1.7' Then
Local $oIE = _IECreate ($UForeIE7, 0, 0)
_IELoadWait ($oIE)
ClickById($oIE, $agreement7)
$UrlZagJRE7 = StringRegExp(BinaryToString(InetRead('http://www.oracle.com/technetwork/java/javase/downloads/index.html', 1), 4), '(?i)center"[\>]JRE[\<]/h3[\>]\s+[\<]div align[\=]"center"[\>][\<]a href[\=]"(.*?)" target', 3)
If @error Then
$SourseUrl7 = '0'
Else
$SourseUrl7 = 'http://www.oracle.com'&$UrlZagJRE7[0]
If @OSArch <> 'X64' Then
$UrlJRE7 = StringRegExp(BinaryToString(InetRead($SourseUrl7, 1), 4), '(?i)Windows x86 Offline"[\,] "size"[\:]"\d+.*MB"[\,]"filepath"[\:]"(.*?)"[\}]', 3)
If @error Then
$AdrJRE = '0'
Else
$AdrJRE = $UrlJRE7[0]
EndIf
Else
$UrlJRE = StringRegExp(BinaryToString(InetRead($SourseUrl7, 1), 4), '(?i)(?i)Windows x64"[\,] "size"[\:]"\d+.*MB"[\,]"filepath"[\:]"(.*?)"[\}]', 3)
If @error Then
$AdrJRE = '0'
Else
$AdrJRE = $UrlJRE[0]
ProgressOn('Скачивание', 'Java SE Runtime Environment', '0 %', -1, -1, 18)
EndIf
EndIf
ProgressOn('Скачивание', 'Java SE Runtime', '0 %', -1, -1, 18)
Local $hDownloadJAVA = InetGet($AdrJRE, @ScriptDir & '\Java SE.exe', 1, 1)
Do
If InetGetInfo($hDownloadJAVA, 1) Then
Local $iPersent = Round((InetGetInfo($hDownloadJAVA, 0) / InetGetInfo($hDownloadJAVA, 1)) * 100)
ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadJAVA, 0)) _
& ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownloadJAVA, 1)) & ')')
TraySetState(1)
TraySetToolTip('Java SE Runtime загружен на '&$iPersent&' %')
EndIf
Sleep(500)
Until InetGetInfo($hDownloadJAVA, 2)
InetClose($hDownloadJAVA)
ProgressOff()
_IEQuit ($oIE)
EndIf
EndIf
EndFunc ;==>_7
Func ClickById($oIE,$id)
_IELoadWait ($oIE)
Global $tmp=_IEGetObjById($oIE, $id)
_IEAction($tmp,"click")
EndFunc
Код:
InetGet
Подскажите может я неправильно что-то делаю?