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