Page 1 sur 1
[R] Enregistrer sous a partir page HTML
Posté : jeu. 18 juin 2009 00:05
par touslesmatins
Bonsoir,
Je peine à trouver la fonction pour faire un enregistrer sous à partir d une page HTML. La fonction dans le menu fichier d une page Html n'a pas de raccourci, aussi ai-je utlisé cette fonction
qui fonctionne mais le fichier généré n est pas exploitable, bizarre, donc j'essaie de trouver la fonctio qui me permettrai de faire un renregistrer sous a partir d une page html (qui ne contient que du texte).
Ceci ne fonctionne pas...
Code : Tout sélectionner
FileSaveDialog( "Choose a name.", @DesktopCommonDir, "Scripts (*.aut;*.au3)|Text files (*.ini;*.txt)", 2)
une Idée ?
Merci
Re: [..] Enregistrer sous a partir page HTML
Posté : jeu. 18 juin 2009 00:36
par Iste
heu tu veux enregistrer une page web étant en vrai un page de texte ?
Ben ton 1er exemple devrait marcher
sauf
@DesktopDir & "\@hour&"h"&@min&"mm"&".txt" devient
@DesktopDir & "\"&@hour&"h"&@min&"mm"&".txt"
vérifie ton lien :/ c'est peut être ca
Et le deuxieme, lis mieux la doc

FileSaveDialog() ne permet qu'une interface pour crée des fullpath par l'utilisateur
Re: [..] Enregistrer sous a partir page HTML
Posté : jeu. 18 juin 2009 00:42
par touslesmatins
Merci je regarde...
Re: [..] Enregistrer sous a partir page HTML
Posté : jeu. 18 juin 2009 08:15
par touslesmatins
Je cherche d'autres solutions, par exemple cette piste est elle bonne ?
merci
Re: [..] Enregistrer sous a partir page HTML
Posté : jeu. 18 juin 2009 12:54
par Iste
mais heu... tu pourrais réexpliquer ton probleme ?
Car si j'ai bien compris, c'est InetGet() ta solution.
A la rigueur,
Code : Tout sélectionner
InetGet($lien,FileSaveDialog( "Choose a name.", @DesktopCommonDir, "Scripts (*.aut;*.au3)|Text files (*.ini;*.txt)", 2),1);
Sinon, si le but final est de récup le texte dans une variable, use directement de cette fonction
Code : Tout sélectionner
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
Func HTTPRequest($oMethod, $oURL, $oData = "")
$oHTTP.Open($oMethod, $oURL, False)
If $oMethod = "POST" Then $oHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")
$oHTTP.Send($oData)
Return $oHTTP.ResponseText
EndFunc ;==>HTTPRequest
Re: [..] Enregistrer sous a partir page HTML
Posté : jeu. 18 juin 2009 23:18
par touslesmatins
Merci Iste j'ai suivi vos conseils, finallement j'opte pour
► Afficher le texte
Code : Tout sélectionner
InetGet($file1,FileSaveDialog( "Enregistrer...", @DesktopCommonDir, "Text files (*.txt)",1,@hour&"h"&@min&"mm"&".txt"),1);
. Par contre y a t il un moyen de valider la boite de dialogue automatiquement ?
Sinon je pensais
► Afficher le texte
Code : Tout sélectionner
If Not WinActive("Enregistrer...","") Then WinActivate("Enregistrer...","")
WinWaitActive("Enregistrer...","")
ControlClick("Enregistrer...","Enregistrer &dans :","Button2")
. Mais cela ne fonctionne pas... et je ne sais pas pourquoi ?
Merci
Re: [..] Enregistrer sous a partir page HTML
Posté : jeu. 18 juin 2009 23:54
par Iste
C'est parce que FileSaveDialog() met en pause le script.
hum... La c'est pas top, j'ai appris récemment a lancer une fonction sans qu'elle ne mette en pause le script, mais la on a besoin de ce qu'elle retourne :/
méééé, si le but est de définir un chemin par défaut,
Sinon, heu... j'ai essayé un truc mais ca marche pas :\
Re: [..] Enregistrer sous a partir page HTML
Posté : sam. 20 juin 2009 10:06
par ani
Ie utilise la fonction ExecWB
sous autoit vous avez _IEaction(objet,action)
Code : Tout sélectionner
$OIE=_IEcreate("http://www.autoitscript.fr/")
_IEaction($OIE,"saveas")
Ensuite on peu imaginer => winexist sur le titre de la boîte de dialogue ("sauvegarder la page web") et y introduire le lien de sauvegarde

Re: [..] Enregistrer sous a partir page HTML
Posté : sam. 20 juin 2009 17:20
par touslesmatins
Merci Ani.
Je viens de le tester et cela fontionne bien, par contre je n arrive pas à fermer la boite de dialog, ni avec send ni avec controlclick...
une idée ?
Re: [..] Enregistrer sous a partir page HTML
Posté : lun. 22 juin 2009 20:37
par orax
Je viens de tester, et visiblement _IEaction($OIE,"saveas") fonctionne un peu comme FileSaveDialog ; je veux dire par là que le script pause tant que la boîte de dialogue est ouverte, donc je suppose que c'est pour ça que vous n'arrivez pas à utiliser ControlSetText, ControlClick ou tout autres fonctions.
Re: [..] Enregistrer sous a partir page HTML
Posté : mar. 23 juin 2009 20:52
par touslesmatins
hum... pas moyen alors...
Re: [..] Enregistrer sous a partir page HTML
Posté : mar. 23 juin 2009 22:32
par orax
Tout dépend de ce que vous souhaitez comme résultat, puisque quant vous faites "Fichier->Enregistrer sous...", vous pouvez choisir d'enregistrer la page web complète (avec les images, scripts, etc.)... Alors, est-ce que c'est ce que vous souhaitez faire ? avoir, en plus du code HTML, les images ? Si non, si c'est juste le code HTML qui vous intéresse vous pouvez utiliser _INetGetSource().
(Il y a aussi _IEDocReadHTML mais je crois qu'IE "modifie" le code.)
Re: [..] Enregistrer sous a partir page HTML
Posté : mer. 24 juin 2009 00:10
par touslesmatins
Je souhaite simplement activer la touche ok de la boite de dialogue qui est generé par save as. Possible ?
pour info : Quand je clic manuellement sur ok un fichier est enregistré.
exactement ce que je cherche, c est la bonne commande.
merci
Re: [..] Enregistrer sous a partir page HTML
Posté : mer. 24 juin 2009 20:32
par orax
Au pire, vous pouvez toujours mettre...
... dans un autre script, et l'exécuter avant de faire controlclick().
Dans ce cas ça marchera.
Re: [..] Enregistrer sous a partir page HTML
Posté : jeu. 25 juin 2009 17:30
par touslesmatins
merci pour votre aide....