none
Fermer Internet Explorer RRS feed

  • Question

  • Bonjour

    Débutant en C#

    Dans mon webbrowser1 je clique sur un lien, et c'est une page de l'autre webbrowser (Internet Explorer) qui s'ouvre. Je désire fermer Internet Explorer et n'ouvrir la page qu'avec webBrowser1. Voici le code écrit :

    private void webBrowser1_NewWindow(object sender, CancelEventArgs e)
            {
     System.Diagnostics.Process[] proc =
    System.Diagnostics.Process.GetProcessesByName("iexplore");
                foreach (System.Diagnostics.Process p in proc)
                {
                    p.Kill();          
                }
            }

    Ce code est sans effet. IE reste ouvert.
    Que faire pour empêcher IE de s'ouvrir ou le fermer tout de suite?

    jeudi 28 juin 2012 11:06

Réponses

  • Si le problème est bien causé par un target="_blank" j'ai testé :

         private void NewWindow(object sender, CancelEventArgs e)
            {
                e.Cancel = true;
                var wb=(WebBrowser)sender;
                var href=wb.Document.ActiveElement.GetAttribute("href");
                //MessageBox.Show(href);
                wb.Navigate(href);
            }
    Donc effectivement, on annule la navigation vers la nouvelle fenêtre puis je récupère l'élément actif qui doit normalement être le lien pour récupérer l'adresse et y diriger le web browser. Il y aurait sans doute des contrôles à ajouter...


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    • Marqué comme réponse soleilnoir vendredi 29 juin 2012 13:14
    vendredi 29 juin 2012 11:28
    Modérateur

Toutes les réponses

  • Bonjour,

    Ce comportement ne semble pas habituel. Cela donne quoi si on essaye le même lien dans IE ? Je pense que le problème pourrait être que le lien présent dans la page est explicitement conçu pour ouvrir la page dans une nouvelle fenêtre ?

    Je ne sais pas quel serait la meilleure approche mais je me demande si dans ce cas là, le mieux ne serait pas de traiter la page (en remplaçant l'attribut target des hyperliens) pour forcer l'ouverture dans la même fenêtre. Cela permettrait d'agir sur la source du problème plutôt que d'essayer d'en contourner les conséquences.

    Mais commencer peut-être par voir ce qui cause exactement l'ouverture dans une nouvelle fenêtre. Vous avez ce même comportement si vous naviguez sur le site msdn.microsoft.com depuis votre contrôle WebBrowser ?


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    jeudi 28 juin 2012 13:04
    Modérateur
  • Bonjour

    Definissez Internet Explorer comme navigateur par defaut et cela marchera

    si autre probleme me le signler

    jeudi 28 juin 2012 15:01
  • Je surfe avec webBrowser1 dans un onglet. La page html est écrite par un autre pour que s'ouvre une nouvelle fenêtre si je clique sur un lien.

    Je veux ouvrir la nouvelle page dans un nouvel onglet, contenant un nouveau webbrowser (webbroser2). Je ne veux pour l'instant savoir qu'une chose:

    Comment bloquer ou fermer Internet Explorer

    jeudi 28 juin 2012 19:16
  • C'est l'exact contraire de ce que je veux faire
    jeudi 28 juin 2012 19:16
  • Bonjour,

    Il n'existe pas de fonctionnalité pour réaliser un tel mécanisme.
    La seule alternative que je vois est de parcourir le document à la recherche des liens de type (<a target="_blank">) et supprimer l'attribut "target".

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    vendredi 29 juin 2012 06:25
    Modérateur
  • Heureux de ton intervention, car j'ai acheté ton petit guide de survie en C#.

    Je suis débutant

    Quand on surfe sur le web, on ne change pas le code des pages html.

    C'est mon application iexplore.exe que je veux fermer.

    On m'a conseillé d'utiliser kill.

    Comment?

    Ensuite on m'a proposé, dans l'évenement NewWindow:

    e.cancel

    (je ne comprend pas)

    vendredi 29 juin 2012 07:35
  • Si le problème est bien causé par un target="_blank" j'ai testé :

         private void NewWindow(object sender, CancelEventArgs e)
            {
                e.Cancel = true;
                var wb=(WebBrowser)sender;
                var href=wb.Document.ActiveElement.GetAttribute("href");
                //MessageBox.Show(href);
                wb.Navigate(href);
            }
    Donc effectivement, on annule la navigation vers la nouvelle fenêtre puis je récupère l'élément actif qui doit normalement être le lien pour récupérer l'adresse et y diriger le web browser. Il y aurait sans doute des contrôles à ajouter...


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    • Marqué comme réponse soleilnoir vendredi 29 juin 2012 13:14
    vendredi 29 juin 2012 11:28
    Modérateur
  • Ca doit faire une semaine que je trime sur ce détail...Ouf !!!!  :-))

    Grand merci à toi

    vendredi 29 juin 2012 13:16