|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
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
Sources en rapport avec celle ci
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
|
Téléchargements
Logiciels à télécharger sur le même thème :
|