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

Code : Tout sélectionner

InetGet($lien,@DesktopDir & "\@hour&"h"&@min&"mm"&".txt",1);
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 :o
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 ?

Code : Tout sélectionner

WinMenuSelectItem ( "", "Fichier", "Enregistrer sous..." )
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
. Par contre y a t il un moyen de valider la boite de dialogue automatiquement ?
Sinon je pensais
► Afficher le texte
. 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,

Code : Tout sélectionner

InetGet($file1,"c:\fichier",1)
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 :o

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...

Code : Tout sélectionner

$OIE=_IEcreate("url")
_IEaction($OIE,"saveas")
... 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....