Accueil > > > ACCÉDER AU CONTENU HTML D'UNE PAGE COMPORTANT DES FRAMES
ACCÉDER AU CONTENU HTML D'UNE PAGE COMPORTANT DES FRAMES
Information sur la source
Description
Pour Visual Studio 2005 Beta... Dans une application Windows Forms, avec un contrôle WebBrowser (anciennement AxWebBrowser1), ce petit bout de code permet de récupérer le code HTML de pages qui comportent des Frames. Le contrôle WebBrowser ne permet pas de faire cette opération, ou alors je n'ai pas réussi à trouver la bonne manip'... J'ai donc utilisé, en parallèle, un objet de type InetClass (Internet Transfer). A voir si c'est applicable dans les versions moins récentes de Visual C#.
Source
using InetCtlsObjects;
using mshtml;
using System;
using System.Windows.Forms;
namespace MonEspaceDeNom
{
public class FenetreWebBrowser : System.Windows.Forms.Form
{
// Attributs privés
private string url;
private string strFrame;
private InetClass monInet;
// Généré par Visual Studio 2005 Beta
private WebBrowser monWebBrowser;
// private AxWebBrowser1 monAxWebBrowser1 pour les versions précédentes
private System.ComponentModel.IContainer components;
public FenetreWebBrowser()
{
//
// Requis pour la prise en charge du Concepteur Windows Forms
//
InitializeComponent();
//
// TODO : ajoutez le code du constructeur après l'appel à InitializeComponent
//
monInet = new InetClass();
monInet.AccessType = AccessConstants.icDirect;
monInet.Protocol = ProtocolConstants.icHTTP;
// Supprime les messages d'erreur de scripts...
monWebBrowser.ScriptErrorsSuppressed = true;
// monAxWebBrowser1.Silent = true pour les versions antérieures
}
/// <summary>
/// Nettoyage des ressources utilisées.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
/// le contenu de cette méthode avec l'éditeur de code.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.monWebBrowser = new System.Windows.Forms.WebBrowser();
this.SuspendLayout();
//
// monWebBrowser
//
this.monWebBrowser.Location = new System.Drawing.Point(0, -2);
this.monWebBrowser.Name = "monWebBrowser";
this.monWebBrowser.Size = new System.Drawing.Size(843, 645);
this.monWebBrowser.TabIndex = 1;
this.monWebBrowser.Navigating += new System.Windows.Forms.WebBrowserNavigatingEventHandler(this.monWebBrowser _Navigating);
//
// FenetreWebBrowser
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(844, 644);
this.Controls.Add(this.monWebBrowser);
this.Load += new System.EventHandler(this.FenetreWebBrowser_Load);
this.Name = "FenetreWebBrowser";
this.Text = "FenetreWebBrowser";
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// Point d'entrée principal de l'application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run( new FenetreWebBrowser() );
}
private void DistriGameWB_Load(object sender, System.EventArgs e)
{
// Variables inutiles dans la version 2005, mais indispensables dans les versions antérieures
object o = url;
object param = System.Reflection.Missing.Value;
// Connection au site
url = "http://www.un_site_avec_des_frames.com/";
monBrowser.Navigate( url );
// monAxWebBrowser1.navigate( ref o, ref param ) pour les versions précédentes
}
private void monWebBrowser_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
if (e.TargetFrameName == "NomDeLaFramePourLaquelleOnSouhaiteAvoirLeContenu")
{
strFrame = (string)monInet.OpenURL( e.Url, DataTypeConstants.icString );
}
}
}
}
Conclusion
En espérant que ce code vous aidera.
Ca fait plusieurs semaines (voire mois) que je cherche sur tous les forums une solution 100% C#. A défaut, j'avais utilisé VB6 pour faire ce petit bout de code (car VB6 permet d'accéder au innerHTML des frames). Sans succès.
En désespoir de cause, j'ai essayé cette solution... Ca a l'air de fonctionner, tout au moins pour mes propres besoins. Quelques adaptations seront peut-être nécessaires pour vous...
Dans le code ci-dessus, la navigation se fait sur l'événement Load de la fenêtre. Il est bien sûr possible de le déporter sur clic d'un bouton, ou tout autre méthode.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Listview et base de donnée [ par fredza ]
Salut,En C# est-il possible de remplir une listview (en mode détail avec le contenu d'une base de donnée) si oui comment ?Ma base est constituée de pl
Afficher le contenu d'un fichier texte ??? [ par CoChOnOu ]
Salut à tousBon voilà, je débute vraiment avec le C# alors ne m'en voulez pas si ma question vous semble ridicule ;-)Voilà, j'ai ajouté un fichier .tx
Mise à jour frame à partir d'une autre frame [ par decan ]
Bonjour,je souhaite mettre à jour une frame à partir des infos que je viens de sélectionner dans une autre frame.exemple : sélection d'une valeur dans
Récupérer le contenu d'une page sous forme de string [ par ttornade ]
Bjr tout le monde,je voudrais récupérer le contenu d'une page(par exemple télécharger une page html) et l'assigner à une variable de type string. Il y
Text Field ... [ par maevacmoi ]
Hello !Je voudrais afficher le contenu d'un fichier dans un textBox, en donnant la possibilité à l'utilisateur d'indiquer la source. J'ai fait des ess
Récupération du contenu d'un site [ par ttornade ]
Bjr tout le monde,je voudrais savoir s'il existe des objects en c# qui me permettent de rècupérer le contenu d'une page html à l'intérieur des frames
[C#]Afficher contenu d'une variable dans une méthode static [ par jacma ]
BonjourJe déclare une variable "private string strConn" au niveau de la classe 'j'ai aussi esayé public ou même rien), mais je ne peux pas en récupére
imprimer le contenu d'un fichier xml [ par creanova2000 ]
creanovabonjour je voudrai savoir comment je peux imprimer le contenu d'un fichier xmls'il vous plair est ce que vous pouver me donner un exemple.merc
[C#] export du contenu d'un dataset vers un fichier texte [ par Michel0911 ]
Bonjour,Comment faire pour pour lire chaque enregistrement d'un dataset et l'exporter vers un fichier texte ?Merci pour votre aide.Michel
Passer le contenu d'une va d'un form à un autre [ par jeanajaccio ]
salut à tous,Qq'un peut me dire ct passer le contenu d'une va d'un formulaire à l'autre ?Merci
|
Derniers Blogs
[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|