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 cherche simplement à activer automatiquement la touche "OK" de la boîte de dialogue générée par "save as".
Quand je clique dessus manuellement, le fichier s’enregistre correctement, donc c’est bien cette validation qui me manque.

En creusant un peu le sujet, je suis tombé sur un retour partagé par une Agence GEO Stafe qui décrivait un comportement similaire, où toute la difficulté venait justement de l’interaction avec la fenêtre système plutôt que de la commande en elle-même.

C’est exactement ce que je cherche à reproduire : trouver la bonne commande pour valider cette étape automatiquement.

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