Salut à toutes et à tous,
Voilà un bon bout que je cherche sans trouver, aussi je fais appel à vous.
Dans une application que je développe j'ouvre des pages html dans un webbrowser.
Ces pages contiennent des liens dirigeant vers des pages pour acheter des informations.
Toutefois certaines de ces infos ont déjà été achetées et se trouvent dans des fichier sur le réseau.
Ce que je veux faire est, lorsqu'un hyper lien est cliqué, vérifier si le fichier est déjà présent. Si oui j'ouvre le fichier existant. Si non, j'ouvre le lien.
Je peux retrouver le fichier sur le serveur par son nom qui est aussi le texte affiché de l'url.
Exemple de lien dans la page et comment je veux le traiter :
<a href="http://www.page.asp">32 588</a>
Je dois récupérer 35 888 et vérifier si j'ai 32588.htm sur le serveur.
Si oui, je navigate(...32588.htm)
Si non, je navigate(http://www.page.asp)
J'ai trouvé e.url dans l'event navigate du contrôle webbrowser qui me permet de récupérer http://www.page.asp mais je n'arrive pas à récupérer 32588.
Enfin, dans l'event newForm je n'arrive à rien récupérer, or si l'utilisateur clique sur "ouvrir dans une nouvelle fenêtre", il faudrait que j'ouvre la page qu'il faut (Celle du serveur ou celle de l'achat) dans une fenêtre de mon application et non dans IE.
Je trouve à beaucoup d'endroits ce code ci
Mais je n'arrive pas à l'utiliser, entre autre à cause du SHDocVw. Faut-il une référence supplémentaire (si oui laquelle ?). Je n'ai pas trouvé cette info.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 private void Form1_Load(object sender, EventArgs e) { this.webBrowser1.Navigate(@"c:\test2\a.htm"); this.webBrowser1.NewWindow += new CancelEventHandler(webBrowser1_NewWindow); SHDocVw.WebBrowser axBrowser = (SHDocVw.WebBrowser)this.webBrowser1.ActiveXInstance; axBrowser.NewWindow3 += new SHDocVw.DWebBrowserEvents2_NewWindow3EventHandler(axBrowser_NewWindow3); } void webBrowser1_NewWindow(object sender, CancelEventArgs e) { e.Cancel = true; //cancel the navigating } void axBrowser_NewWindow3(ref object ppDisp, ref bool Cancel, uint dwFlags, string bstrUrlContext, string bstrUrl) { // access the web page with the URL bstrUrl }
Merci de vos z'avis z'avisés.
Partager