chelo32 Posted November 20, 2013 Share Posted November 20, 2013 I'm having trouble with InetGet.I want to lose the Silverlight.exe with InetGet of this page --- http :/ / www.microsoft.com / getSilverlight / handlers / getsilverlight.ashxbut not successful because the product does not end in. exe file and thus not low at all.The idea of my script is to download and install the latest vercion of Silverlight.exeThis is part of my code: expandcollapse popup#include <Math.au3> #include <GUIConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <ProgressConstants.au3> #include <StaticConstants.au3> TraySetState (2) $_FinalUrl = 'http://www.microsoft.com/getsilverlight/handlers/getsilverlight.ashx' $_TempPath = @TempDir & '\Silverlight_Instaler.exe' $_FileSize = InetGetSize ( $_FinalUrl ) $_Gui = GUICreate ("DOWNLOAD...", 359, 114, 260, 138) GUISetIcon("@TempDir & '\Silverlight.ico", -1) GUICtrlCreateLabel("MICROSOFT SILVERLIGHT", 32, 16, 300, 25, $SS_CENTER) GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif") $_ProgressBar = GUICtrlCreateProgress (48, 40, 254, 33, $PBS_SMOOTH) GUISetState ( @SW_SHOW ) $_Download = InetGet ( $_FinalUrl, $_TempPath, 1, 1) Local $_InfoData Do $_InfoData = InetGetInfo ( $_Download ) If Not @error Then $_InetGet = $_InfoData[0] $_DownloadPercent = Round ( ( 100 * $_InetGet ) / $_FileSize ) $_DownloadPercent = _Min ( _Max ( 1, $_DownloadPercent ), 99 ) GUICtrlSetData ( $_ProgressBar, $_DownloadPercent ) $_Label = GUICtrlCreateLabel ( 'PROGRESS : ' & $_DownloadPercent & ' %', 32, 88, 308, 17, $SS_CENTER ) GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif") EndIf Sleep ( 100 ) Until $_InfoData[2] = True $_Label = GUICtrlCreateLabel ( 'DOWNLOAD SUCCESSFULL !', 32, 88, 308, 17 , $SS_CENTER) GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif") Sleep ( 2000 ) $_Label = GUICtrlCreateLabel ( 'INSTALANDO ESPERE... !', 32, 88, 308, 17 , $SS_CENTER) GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif") Sleep ( 2000 ) ShellExecuteWait(@TempDir & '\Silverlight_Instaler.exe' , '/q /doNotRequireDRMPrompt /ignorewarnings') If someone has a great maid solution because all neurons burn no avail. Sorry for my bad English. Link to comment Share on other sites More sharing options...
Danp2 Posted November 20, 2013 Share Posted November 20, 2013 The link to the actual file that is downloaded is: http://silverlight.dlservice.microsoft.com/download/6/B/8/6B885B0B-73D4-4BCE-BFFF-154B4A402D22/20913.00/Silverlight.exe I'm guessing that this changes with each release. Latest Webdriver UDF Release Webdriver Wiki FAQs Link to comment Share on other sites More sharing options...
wakillon Posted November 20, 2013 Share Posted November 20, 2013 You just have to get the real location of the url using WinHttp.au3 and it works ! expandcollapse popup#include <Math.au3> #include <ProgressConstants.au3> #include <StaticConstants.au3> #include <WinHTTP.au3> ; <<<<<<<<< http://code.google.com/p/autoit-winhttp/downloads/list TraySetState (2) $_FinalUrl = 'http://www.microsoft.com/getsilverlight/handlers/getsilverlight.ashx' $_FinalUrl = _WinHttpGetLocation ( $_FinalUrl ) ConsoleWrite ( 'Location : ' & $_FinalUrl & @Crlf ) $_TempPath = @TempDir & '\Silverlight_Instaler.exe' $_FileSize = InetGetSize ( $_FinalUrl ) $_Gui = GUICreate ("DOWNLOAD...", 359, 114, 260, 138) GUISetIcon("@TempDir & '\Silverlight.ico", -1) GUICtrlCreateLabel("MICROSOFT SILVERLIGHT", 32, 16, 300, 25, $SS_CENTER) GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif") $_ProgressBar = GUICtrlCreateProgress (48, 40, 254, 33, $PBS_SMOOTH) GUISetState ( @SW_SHOW ) $_Download = InetGet ( $_FinalUrl, $_TempPath, 1, 1) Local $_InfoData Do $_InfoData = InetGetInfo ( $_Download ) If Not @error Then $_InetGet = $_InfoData[0] $_DownloadPercent = Round ( ( 100 * $_InetGet ) / $_FileSize ) $_DownloadPercent = _Min ( _Max ( 1, $_DownloadPercent ), 99 ) GUICtrlSetData ( $_ProgressBar, $_DownloadPercent ) $_Label = GUICtrlCreateLabel ( 'PROGRESS : ' & $_DownloadPercent & ' %', 32, 88, 308, 17, $SS_CENTER ) GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif") EndIf Sleep ( 100 ) Until $_InfoData[2] = True $_Label = GUICtrlCreateLabel ( 'DOWNLOAD SUCCESSFULL !', 32, 88, 308, 17 , $SS_CENTER) GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif") Sleep ( 2000 ) $_Label = GUICtrlCreateLabel ( 'INSTALANDO ESPERE... !', 32, 88, 308, 17 , $SS_CENTER) GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif") Sleep ( 2000 ) ShellExecuteWait(@TempDir & '\Silverlight_Instaler.exe' , '/q /doNotRequireDRMPrompt /ignorewarnings') Exit Func _WinHttpGetLocation ( $sUrl ) Local $hOpen, $hConnect, $hRequest, $sHostName, $sFileName, $sLocation Local $aCrackedUrl = _WinHttpCrackUrl ( $sUrl, $ICU_DECODE ) $hOpen = _WinHttpOpen ( 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)' ) _WinHttpSetOption ( $hOpen, $WINHTTP_OPTION_REDIRECT_POLICY, $WINHTTP_OPTION_REDIRECT_POLICY_NEVER ) $sHostName = $aCrackedUrl[2] $hConnect = _WinHttpConnect ( $hOpen, $sHostName, $aCrackedUrl[3] ) $sFileName = $aCrackedUrl[6] & $aCrackedUrl[7] $hRequest = _WinHttpOpenRequest ( $hConnect, 'GET', $sFileName, 'HTTP/1.1', $sHostName ) _WinHttpAddRequestHeaders ( $hRequest, 'Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/msword, */*' ) _WinHttpAddRequestHeaders ( $hRequest, 'Accept-Encoding: gzip, deflate' ) _WinHttpAddRequestHeaders ( $hRequest, 'Connection: Keep-Alive' ) _WinHttpSendRequest ( $hRequest ) _WinHttpReceiveResponse ( $hRequest ) If _WinHttpQueryDataAvailable ( $hRequest ) Then $sLocation = _WinHttpQueryHeaders ( $hRequest, $WINHTTP_QUERY_LOCATION ) _WinHttpCloseHandle ( $hRequest ) _WinHttpCloseHandle ( $hConnect ) _WinHttpCloseHandle ( $hOpen ) Return $sLocation EndFunc ;==> _WinHttpGetLocation () AutoIt 3.3.14.2 X86 - SciTE 3.6.0 - WIN 8.1 X64 - Other Example Scripts Link to comment Share on other sites More sharing options...
chelo32 Posted November 21, 2013 Author Share Posted November 21, 2013 You just have to get the real location of the url using WinHttp.au3 and it works ! expandcollapse popup#include <Math.au3> #include <ProgressConstants.au3> #include <StaticConstants.au3> #include <WinHTTP.au3> ; <<<<<<<<< http://code.google.com/p/autoit-winhttp/downloads/list TraySetState (2) $_FinalUrl = 'http://www.microsoft.com/getsilverlight/handlers/getsilverlight.ashx' $_FinalUrl = _WinHttpGetLocation ( $_FinalUrl ) ConsoleWrite ( 'Location : ' & $_FinalUrl & @Crlf ) $_TempPath = @TempDir & '\Silverlight_Instaler.exe' $_FileSize = InetGetSize ( $_FinalUrl ) $_Gui = GUICreate ("DOWNLOAD...", 359, 114, 260, 138) GUISetIcon("@TempDir & '\Silverlight.ico", -1) GUICtrlCreateLabel("MICROSOFT SILVERLIGHT", 32, 16, 300, 25, $SS_CENTER) GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif") $_ProgressBar = GUICtrlCreateProgress (48, 40, 254, 33, $PBS_SMOOTH) GUISetState ( @SW_SHOW ) $_Download = InetGet ( $_FinalUrl, $_TempPath, 1, 1) Local $_InfoData Do $_InfoData = InetGetInfo ( $_Download ) If Not @error Then $_InetGet = $_InfoData[0] $_DownloadPercent = Round ( ( 100 * $_InetGet ) / $_FileSize ) $_DownloadPercent = _Min ( _Max ( 1, $_DownloadPercent ), 99 ) GUICtrlSetData ( $_ProgressBar, $_DownloadPercent ) $_Label = GUICtrlCreateLabel ( 'PROGRESS : ' & $_DownloadPercent & ' %', 32, 88, 308, 17, $SS_CENTER ) GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif") EndIf Sleep ( 100 ) Until $_InfoData[2] = True $_Label = GUICtrlCreateLabel ( 'DOWNLOAD SUCCESSFULL !', 32, 88, 308, 17 , $SS_CENTER) GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif") Sleep ( 2000 ) $_Label = GUICtrlCreateLabel ( 'INSTALANDO ESPERE... !', 32, 88, 308, 17 , $SS_CENTER) GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif") Sleep ( 2000 ) ShellExecuteWait(@TempDir & '\Silverlight_Instaler.exe' , '/q /doNotRequireDRMPrompt /ignorewarnings') Exit Func _WinHttpGetLocation ( $sUrl ) Local $hOpen, $hConnect, $hRequest, $sHostName, $sFileName, $sLocation Local $aCrackedUrl = _WinHttpCrackUrl ( $sUrl, $ICU_DECODE ) $hOpen = _WinHttpOpen ( 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)' ) _WinHttpSetOption ( $hOpen, $WINHTTP_OPTION_REDIRECT_POLICY, $WINHTTP_OPTION_REDIRECT_POLICY_NEVER ) $sHostName = $aCrackedUrl[2] $hConnect = _WinHttpConnect ( $hOpen, $sHostName, $aCrackedUrl[3] ) $sFileName = $aCrackedUrl[6] & $aCrackedUrl[7] $hRequest = _WinHttpOpenRequest ( $hConnect, 'GET', $sFileName, 'HTTP/1.1', $sHostName ) _WinHttpAddRequestHeaders ( $hRequest, 'Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/msword, */*' ) _WinHttpAddRequestHeaders ( $hRequest, 'Accept-Encoding: gzip, deflate' ) _WinHttpAddRequestHeaders ( $hRequest, 'Connection: Keep-Alive' ) _WinHttpSendRequest ( $hRequest ) _WinHttpReceiveResponse ( $hRequest ) If _WinHttpQueryDataAvailable ( $hRequest ) Then $sLocation = _WinHttpQueryHeaders ( $hRequest, $WINHTTP_QUERY_LOCATION ) _WinHttpCloseHandle ( $hRequest ) _WinHttpCloseHandle ( $hConnect ) _WinHttpCloseHandle ( $hOpen ) Return $sLocation EndFunc ;==> _WinHttpGetLocation () Thanks for the code, works Achievement download the file, but I can not run it as I said it is not a valid win32 application, I think it's for the 64-bit version, when I use the link in the browser I download the correct vercion.You will have idea why this happens?Thank you very much for your time and dedication Link to comment Share on other sites More sharing options...
wakillon Posted November 21, 2013 Share Posted November 21, 2013 Try to change Until $_InfoData[2] = True by Until $_InfoData[2] = True And $_InfoData[3] = True On my side it works, may be you need admin rights? AutoIt 3.3.14.2 X86 - SciTE 3.6.0 - WIN 8.1 X64 - Other Example Scripts Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now