Enregistrer le contenu d'un WebBrowser [Résolu]

cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention - 15 juin 2006 à 09:16 - Dernière réponse : rachido1987 1 Messages postés mercredi 2 janvier 2008Date d'inscription 9 mai 2012 Dernière intervention
- 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.

@+
Afficher la suite 

9 réponses

Répondre au sujet
cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention - 15 juin 2006 à 11:52
+3
Utile
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!!
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_drahcir
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 15 juin 2006 à 09:42
0
Utile
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# 
Commenter la réponse de MorpionMx
cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention - 15 juin 2006 à 09:57
0
Utile
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.
Commenter la réponse de cs_drahcir
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 15 juin 2006 à 10:50
0
Utile
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# 
Commenter la réponse de MorpionMx
cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention - 15 juin 2006 à 11:02
0
Utile
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!!!
Commenter la réponse de cs_drahcir
cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention - 15 juin 2006 à 11:27
0
Utile
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.
Commenter la réponse de cs_drahcir
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 15 juin 2006 à 12:06
0
Utile
Et merci de nous avoir donné ta solution :)

Mx
MVP C# 
Commenter la réponse de MorpionMx
ronanry 191 Messages postés lundi 25 novembre 2002Date d'inscription 22 décembre 2009 Dernière intervention - 22 déc. 2009 à 19:43
0
Utile
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)
Commenter la réponse de ronanry
rachido1987 1 Messages postés mercredi 2 janvier 2008Date d'inscription 9 mai 2012 Dernière intervention - 9 mai 2012 à 15:53
0
Utile
hello
Commenter la réponse de rachido1987

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.