[..] Boite de dialogue : Ouvrir, enregistrer Annuler

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
PH411
Niveau 1
Niveau 1
Messages : 4
Enregistré le : ven. 08 janv. 2016 11:28
Status : Hors ligne

[..] Boite de dialogue : Ouvrir, enregistrer Annuler

#1

Message par PH411 »

Bonjour à tous,

Je viens de découvrir autoIt et sont forum.

Je code habituellement sur VBA ( Excel) et je cherche à télécharger un fichier depuis un site internet.
Malheureusement juste après le moment de cliquer sur le fichier qui m’intéresse il existe une boite de dialogue "Ouvrir, enregistrer Annuler " que je n'arrive pas à passer avec VBA.
Je me suis donc tourner vers le logiciel AutoIt pour passer ce petit passage.
Ayant peu de connaissance dans ce logiciel j'en appel à votre aide

Un grand merci par avance pour votre aide !
Modifié en dernier par PH411 le sam. 09 janv. 2016 11:53, 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: Boite de dialogue : Ouvrir, enregistrer Annuler : Intern

#2

Message par orax »

Bienvenue sur le forum, merci de modifier le titre du message pour qu'il respecte les règles de présentation d'un message.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Boite de dialogue : Ouvrir, enregistrer Annuler

#3

Message par orax »

Regarde la fonction InetGet pour télécharger un fichier.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
PH411
Niveau 1
Niveau 1
Messages : 4
Enregistré le : ven. 08 janv. 2016 11:28
Status : Hors ligne

Re: [..] Boite de dialogue : Ouvrir, enregistrer Annuler

#4

Message par PH411 »

Merci, mais si j'ai bien compris cette fonction il faut que url mene à un fichier. Ce qui n'est pas le cas pour ma part.

Je souhaite véritablement piloter cette boite de dialogue sous IE 11.
Avatar du membre
TomAijerrie
Niveau 5
Niveau 5
Messages : 192
Enregistré le : lun. 02 juin 2014 09:55
Localisation : Lyon
Status : Hors ligne

Re: [..] Boite de dialogue : Ouvrir, enregistrer Annuler

#5

Message par TomAijerrie »

Bienvenue sur le forum
PH411 a écrit :je cherche à télécharger un fichier depuis un site internet.
PH411 a écrit :si j'ai bien compris cette fonction il faut que url mene à un fichier. Ce qui n'est pas le cas pour ma part.
Peux-tu nous montrer sur quoi tu travaille ?
Quand on clique sur un lien de téléchargement, il ouvre une autre page qui en réalité est l'url d'un fichier.
Cette URL est plutôt simple à trouver.
Par exemple, sous chrome, tu fais Ctrl+J, et tu a la liste des fichiers téléchargés.
(voir la pièe jointe)

Code : Tout sélectionner

#include <Inet.au3>
#include <INet.au3>

$URL_source = "https://www.autoitscript.com/files/autoit3/autoit-v3-setup.exe"
$Dir_destination = @MyDocumentsDir "\AutoIt3_instal.exe";ne pas se tromper d'extension,
;selon la configuration de ta machine tu ne pourras pas la changer

$Contenu_du_fichier = _INetGetSource($URL_source)
If FileWrite($Dir_destination,$Contenu_du_fichier) = 1 Then
    MsgBox(64,"Bravo","")
Else
    MsgBox(0,"Erreur","")
EndIf

;la même chose en une ligne :
MsgBox(0,FileWrite(@MyDocumentsDir "\AutoIt3_instal.exe",_INetGetSource("https://www.autoitscript.com/files/autoit3/autoit-v3-setup.exe")) ? "Bravo" : "Erreur","")

;Si tu veux une boite de dialogue

$URL_source = "https://www.autoitscript.com/files/autoit3/autoit-v3-setup.exe"
$Dir_destination = FileSaveDialog("Telecharger un fichier",@MyDocumentsDir,"Executables (*.exe)|Script Autoit (*.au3)|Images(*.bmp;*.jpg;*.png)|Tous les fichiers (*.*)",2,"AutoIt3_instal.exe")

$Contenu_du_fichier = _INetGetSource($URL_source)

If FileWrite($Dir_destination,$Contenu_du_fichier) = 1 Then
    MsgBox(64,"Bravo","")
Else
    MsgBox(0,"Erreur","")
EndIf

;la même chose en une ligne :
MsgBox(0,FileWrite(FileSaveDialog("Telecharger un fichier",@MyDocumentsDir,"Executables (*.exe)|Script Autoit (*.au3)|Images(*.bmp;*.jpg;*.png)|Tous les fichiers (*.*)",2,"AutoIt3_instal.exe"),_INetGetSource("https://www.autoitscript.com/files/autoit3/autoit-v3-setup.exe")) ? "Bravo" : "Erreur","")
 
Pense à placer entre les balises #cs (comment start) et #ce (comment end) les parties du code que tu n'utilises pas.
Fichiers joints
telechargement.PNG
PH411
Niveau 1
Niveau 1
Messages : 4
Enregistré le : ven. 08 janv. 2016 11:28
Status : Hors ligne

Re: [..] Boite de dialogue : Ouvrir, enregistrer Annuler

#6

Message par PH411 »

Merci pour l'aide,

Malheureusement je ne peux pas vous montrer mais j'ai un exemple qui est similaire à mon cas : avec ce lien :

https://www.euronext.com/fr/popup/data ... 6a6f38530

Comme indiqué, le document n'est pas disponible directement et le lien du téléchargement ( crtl + J) est le lien de la page et non de la pièce jointe .

Il existe des solutions pour cette exemple ( fonctionner par requette) mais je souhaite piloter la boite de dialogue car dans mon cas réel, je n'ai vraiment que ce choix.
ça fait plusieurs jour que je me prend la tête dessus et c'est un véritable casse tête...

Merci pour votre contribution.

Edit : j'ai écris avant de tester votre code. Je vais étudier son fonctionnement !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Boite de dialogue : Ouvrir, enregistrer Annuler

#7

Message par mikell »

Je sais, ça manque d'élégance mais tu as toujours la possibilité de faire ça

Code : Tout sélectionner

Opt("WinTitleMatchMode", -2)  ; pour pouvoir n'utiliser qu'une partie du titre
;....
WinWait("Téléchargement")  ; boite "Ouvrir Enregistrer Annuler " 
WinActivate("Téléchargement")
Send("{TAB 3}")
Sleep(100)
Send("{enter}")
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
PH411
Niveau 1
Niveau 1
Messages : 4
Enregistré le : ven. 08 janv. 2016 11:28
Status : Hors ligne

Re: [..] Boite de dialogue : Ouvrir, enregistrer Annuler

#8

Message par PH411 »

Oui j'imagine que c'est le code pour les sendkeys ?
C'est mon ultime option mais je ne préfère pas l'utiliser...
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Boite de dialogue : Ouvrir, enregistrer Annuler

#9

Message par orax »

Code à tester sur le site euronext

Code : Tout sélectionner

$sTitre = 'Please specify the download format | Euronext'
WinActivate($sTitre)
ControlClick($sTitre, '', 'DirectUIHWND1', 'primary', 4, 775, 25)
Send('{SPACE}')
ControlClick seul ne marchait pas donc j'ai ajouté un Send mais le Send oblige la fenêtre a être au premier plan.
Même si ce code peut marcher il est préférable de faire autrement quand c'est possible.
Le "DirectUIHWND1" est trouvé avec AU3Info dans le menu Tools de SciTE.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Boite de dialogue : Ouvrir, enregistrer Annuler

#10

Message par orax »

de PH411 » Aujourd’hui, 21:53
de mikell » Aujourd’hui, 22:55
de PH411 » Aujourd’hui, 22:56
de orax » Aujourd’hui, 22:57
Il manque 54... dommage on fera mieux la prochaine fois ! Image
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Répondre