[..] Boite de dialogue : Ouvrir, enregistrer Annuler
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[..] Boite de dialogue : Ouvrir, enregistrer Annuler
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 !
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.
- orax
- 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
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)
- orax
- Modérateur

- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: [..] Boite de dialogue : Ouvrir, enregistrer Annuler
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)
Re: [..] Boite de dialogue : Ouvrir, enregistrer Annuler
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.
Je souhaite véritablement piloter cette boite de dialogue sous IE 11.
- TomAijerrie
- Niveau 5

- Messages : 192
- Enregistré le : lun. 02 juin 2014 09:55
- Localisation : Lyon
- Status : Hors ligne
Re: [..] Boite de dialogue : Ouvrir, enregistrer Annuler
Bienvenue sur le forum
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)
Pense à placer entre les balises #cs (comment start) et #ce (comment end) les parties du code que tu n'utilises pas.
PH411 a écrit :je cherche à télécharger un fichier depuis un site internet.
Peux-tu nous montrer sur quoi tu travaille ?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.
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","")
Re: [..] Boite de dialogue : Ouvrir, enregistrer Annuler
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 !
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 !
- mikell
- 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
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 )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Re: [..] Boite de dialogue : Ouvrir, enregistrer Annuler
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...
C'est mon ultime option mais je ne préfère pas l'utiliser...
- orax
- Modérateur

- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: [..] Boite de dialogue : Ouvrir, enregistrer Annuler
Code à tester sur le site euronext
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.
Code : Tout sélectionner
$sTitre = 'Please specify the download format | Euronext'
WinActivate($sTitre)
ControlClick($sTitre, '', 'DirectUIHWND1', 'primary', 4, 775, 25)
Send('{SPACE}')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)
- orax
- Modérateur

- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: [..] Boite de dialogue : Ouvrir, enregistrer Annuler
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 !
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 !
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)

