Automatiser un telechargement
Bonjour,
Voilà 2 jours que je cherche comment faire et je ne trouve pas.
Ce que je souhaite faire c'est me connecter à un site voulu (j'ai quelques soucis dont je vous ferais part) et télécharger le fichier (attendre la pop-up, exécuter "Enregistrer Sous" et choisir le chemin voulu)
Pour le moment voilà ce que j'ai :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| Call Main
Function Main
Set IE = WScript.CreateObject("InternetExplorer.Application", "IE_")
'Visibilite de la fenetre d'IE
'Je vois l'affichage de la fenetre alors que je ne devrais pas, je ne comprend pas pourquoi
IE.Visible = False
'Accedes a la page de connection
IE.Navigate "url connection"
'Attend que la fenetre se charge
Wait IE
'Remplie les champs necessaire pour ce connecter
With IE.Document
.getElementByID("identifiant").value = "id" 'Il arrive d avoir une erreur ici, l erreur est : Objet requis getElementByID
.getElementByID("password").value = "mdp"
.getElementByID("e_buttonOk").Click
End With
Wait IE
'Accede a la page du telechargement du fichier
IE.Navigate "url pour ddl le fichier voulu"
Wait IE
WScript.Sleep 1000
'Ici une fenetre apparait pour ouvrir, enregistrer sous ou annuler le ddl, je souhaiterais automatiser le ddl, donc enregistrer sous, et a un endroit precis
'Se deconnecte
IE.Navigate "url deconnection"
Wait IE
'Ferme la fenetre IE
IE.Quit
Set IE = Nothing
End Function
'Fonction pour attendre que la page internet se charge
Sub Wait(IE)
Do
WScript.Sleep 500
Loop While IE.ReadyState < 4 And IE.Busy
End Sub |
Je vous ai expliqué mes questions dans mon code aux lignes : 6, 14 et 27.
Pour le téléchargement j'avais trouvé ce code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| Set wshShell1 = CreateObject("WScript.Shell")
While Not wshShell1.AppActivate("Téléchargement de fichiers")
DoEvents
bfound = wshShell1.AppActivate("Téléchargement de fichiers")
Wend
If bfound Then wshShell1.SendKeys "{TAB}"
Sleep (1000)
If bfound Then wshShell1.SendKeys "%r"
Sleep (1000)
DoEvents
While Not wshShell1.AppActivate("Enregistrer sous")
DoEvents
bfound = wshShell1.AppActivate("Enregistrer sous")
Wend
bfound = wshShell1.AppActivate("Enregistrer sous")
If bfound Then wshShell1.SendKeys "%N"
Sleep (1000)
If bfound Then wshShell1.SendKeys "Mon emplacement de fichier sur disque"
Sleep (1000)
If bfound Then wshShell1.SendKeys "%E"
Sleep (1000)
wshShell1.SendKeys "%O"
Sleep (1000) |
Mais d'après l'auteur de celui-ci, quelques fois ça bloque sur la box. Je n'ai pas pu l'exécuter à cause d'une erreur, le DoEvents qui n'est pas reconnu.
Je code depuis peu en VBS donc je n'arrive pas encore à voir les différences des objets entre les VB.
J'espère que j'ai été clair dans mon explication et dans mes demandes.
Merci d'avance.