[C#]Comment récupérer l'url d'une page web ?

Fermé
Skartt - 30 avril 2011 à 14:37
Nico# Messages postés 323 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 28 août 2013 - 1 mai 2011 à 11:51
Bonjour,
Je voudrais savoir comment récupérer l'url de la page internet sur laquelle on se trouve avec C#. Par exemple, si une page est ouverte et qu'on lance le programme, il s'affiche l'adresse dans la console.
Merci de votre aide !

A voir également:

1 réponse

Nico# Messages postés 323 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 28 août 2013 102
1 mai 2011 à 11:51
bonjour,

tu peut le faire avec de l'interop

un truc comme ça

#region API : Methodes
    // version utilisée pour WM_GETTEXTLENGTH
    [DllImport("user32.dll")]
    private static extern int SendMessage (
    IntPtr hWnd,
    uint message,
    int wParam,
    int lParam );
    // version utilisée pour WM_GETTEXT
    [DllImport("user32.dll")]
    private static extern int SendMessage (
    IntPtr hWnd,
    uint message,
    int wParam,
    StringBuilder lParam );
    [DllImport("user32.dll")]
    private static extern IntPtr FindWindowEx (
    IntPtr hwndParent,
    IntPtr hwndChildAfter,
    string lpszClass,
    string lpszWindow );
    #endregion
    #region API : Constantes
    // Source : WinUser.h
    private const uint WM_GETTEXT = 0x000D;
    private const uint WM_GETTEXTLENGTH = 0x000E;
    #endregion
    private void ActualisationListe()
    {
    // RAZ liste
    listView.Items.Clear();
    IntPtr handleIE = IntPtr.Zero;
    IntPtr handleEdit = IntPtr.Zero;
    StringBuilder str;
    string url="";
    string titre="";
    int longueur_texte;
   
    while ( (handleIE = FindWindowEx(IntPtr.Zero, handleIE, "IEFrame", null))!=IntPtr.Zero)
    {
    // RECUPERATION DU TITRE DE FENETRE
    // Récupération de sa longueur
    longueur_texte = SendMessage(handleIE, WM_GETTEXTLENGTH, 0, 0);
    // Récupération du texte
    str = new StringBuilder(longueur_texte+1);
    SendMessage(handleIE, WM_GETTEXT, str.Capacity, str);
    titre = str.ToString();
    // récupération du handle du controle
    handleEdit = RecupHandleCtrl(handleIE);
    // si notre Combo a été trouvé
    if ( handleEdit != IntPtr.Zero)
    {
   
    longueur_texte = SendMessage(handleEdit, WM_GETTEXTLENGTH, 0, 0);
    // Récupération du texte
    str = new StringBuilder(longueur_texte+1);
    SendMessage(handleEdit, WM_GETTEXT, str.Capacity, str);
    url = str.ToString();
    }
    else
    {
    url = "Non disponible.";
    }
   
    }
    }
   
    private IntPtr RecupHandleCtrl(IntPtr handleIE)
    {
    IntPtr handleTmp = handleIE;
   
    handleTmp = FindWindowEx(handleTmp, IntPtr.Zero, "WorkerW", null);
    if ( handleTmp == IntPtr.Zero) // non trouvé
    return IntPtr.Zero;
    handleTmp = FindWindowEx(handleTmp, IntPtr.Zero, "ReBarWindow32", null);
    if ( handleTmp == IntPtr.Zero) // non trouvé
    return IntPtr.Zero;
    handleTmp = FindWindowEx(handleTmp, IntPtr.Zero, "ComboBoxEx32", null);
    if ( handleTmp == IntPtr.Zero) // non trouvé
    return IntPtr.Zero;
    return handleTmp; // trouvé
    }
    }
0