[R] Télécharger ZHPCleanr

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
kaz
Niveau 1
Niveau 1
Messages : 3
Enregistré le : jeu. 14 août 2014 12:22
Status : Hors ligne

[R] Télécharger ZHPCleanr

#1

Message par kaz »

Bonjour,
je souhaite réaliser un script pour télécharger différents outils et les mettre à jour si besoin.
La première fois, l'outil est absent, il sera donc téléchargé.
Les fois suivantes, la page de l'outil sera lue et analysée pour déterminer si la version a évoluée. Le téléchargement sera effectué à nouveau si besoin.

L'outil sur lequel je bloque actuellement est : ZHPCleaner. (http://www.nicolascoolman.fr/download/zhpcleaner/)
Je récupère l'adresse du bouton télécharger et je n'arrive pas à récupérer l'exe ensuite.

J'ai utilisé UrlDownloadEx.au3 avec le code suivant :

Code : Tout sélectionner

#include <UrlDownloadEx.au3>

UrlDownloadEx("http://www.nicolascoolman.fr/?wpdmdl=1956", "ZHPCleaner.exe", 1)
if @error<> 0 Then ConsoleWrite(@error & @CRLF)
 
Ça ne fonctionne pas :-(

J'ai essayé d'utiliser les fonctions INET...

Code : Tout sélectionner

local $updateDownload = InetGet($filedown, $nomefiledown, 1, 1)

Do
 Sleep(250)
 Local  $adata = InetGetInfo($updateDownload)
Until InetGetInfo($updateDownload, 2) 

InetClose($updateDownload)
 
Mai ça ne fonctionne pas non plus.

Est-ce quelqu'un aurait une idée?
Merci par avance.
Modifié en dernier par kaz le ven. 15 août 2014 11:19, modifié 1 fois.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Télécharger ZHPCleanr

#2

Message par orax »

Il faut indiqué un Referer (nicolascoolman.fr) sinon le serveur renvoie un HTTP/1.1 302 Moved Temporarily et il nous redirige sur nicolascoolman.fr/download/zhpcleaner/. Sans doute pour éviter les liens directs sur l'URL de téléchargement.

Code : Tout sélectionner

$hr = ObjCreate("WinHttp.WinHttpRequest.5.1")
$hr.Open("GET", "http://www.nicolascoolman.fr/?wpdmdl=1956")
$hr.SetRequestHeader("Referer", "http://www.nicolascoolman.fr/download/zhpcleaner/")
$hr.Send()
If $hr.Status = 200 Then
    $r = $hr.ResponseBody()
    FileWrite("ZHPCleaner.exe", $r)
Else
    ConsoleWrite($hr.Status & ' : ' & $hr.StatusText & @CRLF)
EndIf
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
kaz
Niveau 1
Niveau 1
Messages : 3
Enregistré le : jeu. 14 août 2014 12:22
Status : Hors ligne

Re: [..] Télécharger ZHPCleanr

#3

Message par kaz »

Merci, cela fonctionne parfaitement.
Je ne pratique pas du tout les objets COM, je devrais me pencher dessus peut être.

Merci encore
SurPriseS
Niveau 6
Niveau 6
Messages : 291
Enregistré le : jeu. 06 sept. 2007 11:35
Localisation : Finistère sud
Status : Hors ligne

Re: [R] Télécharger ZHPCleanr

#4

Message par SurPriseS »

Petite question subsidiaire, vu que j'utilise la même chose, c'est possible de récupéré la taille du fichier avant de le DL ? Et d'en faire une progress bar ?

Merci !
Répondre