Enregistrer le contenu d'un WebBrowser

Résolu
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 - 15 juin 2006 à 09:16
rachido1987 Messages postés 1 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 9 mai 2012 - 9 mai 2012 à 15:53
Bonjour à tous,

j'ai posé la question sur vbfrance, sans succés pour l'instant, alors peut-être que quelqu'un à ma réponse ici.....

Je cherche à enregistrer le contenu de mon WebBrowser dans un fichier html. Jusque là, rien d'exceptionnel, j'utilise la fonction ExecCommand() :

WebBrowser1.Document.ExecCommand("SaveAs", False, "C:\maPage.html")

D'aprés la doc msdn, le second paramètre permet d'afficher ou non une boîte de dialogue correspondant à la fonctionnalité du 1er paramètre.

False devrait donc me permettre de ne pas afficher la boîte de dialogue, et d'enregistrer ma page directement à l'endroit désiré. Cependant, la boîte de dialogue apparaît toujours

J'ai cherché sur le forum, il y a pleins de gens qui semblent avoir eu le même problème, mais aucun ne semble avoir eu de réponse!! J'aimerais donc savoir si c'est possible, et si oui comment faire.

Merci pour vos réponses.

@+

9 réponses

cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
15 juin 2006 à 11:52
J'ai trouvé le moyen de faire autrement. En fait, j'ai crée un fichier html avec le contenu de mon WebBrowser et voilà tout!!

En utilisant


FileIO.FileSystem.WriteAllText("C:\maPage.html", False)

Le code doit y ressembker beaucoup  en c#, peut-être juste avec un ';' à la fin.....
Ca marche trés bien!! Je me demande comment j'ai pas pensé à ça plus tôt!!!!

Merci en tous cas à toi MorpionMx pour ton aide!!
3
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
15 juin 2006 à 09:42
Salut,

Je me demande si c'est possible...
En effet, la propriété Document est un wrapper de DOM... Et imagine donc maintenant qu'on fasse ce que tu veuilles faire, mais en javascript... Ca risque d'etre un peu dangereux :/

D'ailleurs :
http://support.microsoft.com/kb/q244757/

Mx
MVP C# 
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
15 juin 2006 à 09:57
C'est vrai que ça peut être dangereux, mais ce n'est pas du tout mon intention..... Je veux juste enregistrer le contenu de mon WebBrowser pour pouvoir l'archiver par la suite. C'est pourquoi je voudrais que l'enregistrement soit transparent pour l'utilisateur puisque pour l'archiver, j'ai besoin d'aller chercher mon fichier dans un répertoire bien défini, donc si l'utilisateur l'enregistre ailleurs.......... ça plante!!!!

Ce que je ne comprends pas, c'est que d'aprés la doc (cf ci-dessous) ça devrait être possible, mais ça ne marche pas, quoi que je fasse, la boîte de dialogue apparaît tout le temp

SaveAs Command
<hr size="1" />Saves the current Web page to a file.

Scripting Information

<gras>Command |SaveAs , ----
User interface |Optional. This command displays a dialogue box if the bUserInterface argument of execCommandqueryCommandEnabledqueryCommandIndetermqueryCommandStatequeryCommandSupportedqueryCommandValue.
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
15 juin 2006 à 10:50
En regardant a l'url que je t'ai trasmis, il est ecrit :

There is no way to suppress this prompt. To save files to the hard-disk without prompting, use the URLDownloadToFile API from URLMON.

Donc tu peux tenter de voir de ce coté.
Par contre, pas sur que ca fonctionne pour recuperer le document html complet.

Mx
MVP C# 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
15 juin 2006 à 11:02
Arf désolé, j'avais pas vu le lien .

Je vais regarder de ce côté et je te tiens au courant. Merci de ton aide!!!
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
15 juin 2006 à 11:27
J'ai jetté un coup d'oeil, mais ça ne me convient pas. Il faut passer en paramètre l'url de la page, or moi, je ne veux pas enregistrer toute ma page, mais seulement une partie que j'ai copié/collé dans mon WebBrowser!!


Pour enregistrer toute la page, j'ai eu le problème auparavant et je l'ai résolu en ajoutant une référence à Microsoft CDO Library.
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
15 juin 2006 à 12:06
Et merci de nous avoir donné ta solution :)

Mx
MVP C# 
0
ronanry Messages postés 190 Date d'inscription lundi 25 novembre 2002 Statut Membre Dernière intervention 22 décembre 2009
22 déc. 2009 à 19:43
sinon je viens de trouver 3 petites methodes BIEN sympa
je les poste donc pour ceux qui, comme moi, chercherait des infos la dessus (j'ai mis un bon 1/4h pour trouver ce joli bout de code)

'avec celui la vous aurez un prompt
WebBrowser0.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_DODEFAULT

'celui ci est sensé enregistrer a l'emplacement voulu sans rien demander a personne... mais ca ne veut pas marcher chez moi...
WebBrowser0.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_DONTPROMPTUSER, "c:\ab.html", Null

'celle la n'est pas avec webbrowser "directement"
Set fs = CreateObject("Scripting.FileSystemObject")
Set filePtr = fs.CreateTextFile("c:\abc.htm", True)
filePtr.WriteLine (WebBrowser1.Document.body.innerHTML)
0
rachido1987 Messages postés 1 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 9 mai 2012
9 mai 2012 à 15:53
hello
0
Rejoignez-nous