Título: Una ayuda con un proyecto de c#?
Publicado por: andrecid en 2 Noviembre 2014, 13:12 pm
Hola a ver hoy estuve leyendo y investigando por internet como podía hacer la aplicación como, vi que con el español no encontraba nada decidí búscarlo en ingles y bueno he encontrado varias cositas pero no es lo que yo quería aun así me vale. Lo que quiero hacer es tengo 1 form y en este si damos un click en el button1 nos lleva a una página web, hasta aquí todo bien, luego de llevarnos a la página web aparece otro form y este debe de validar la conexión a la página web que nos llevo el form1 como, la pena es que solo he encontrado 2 formas: 1- Con el ping o de estas formas: public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { bool Conection = NetworkInterface.GetIsNetworkAvailable(); if (Conection == true) { label1.Text = "Conexión realizada con éxito"; button1.Visible = true; } else { label1.Text = " Conexión fallida"; } }
o public partial class Form2 : Form { [DllImport("wininet.dll")] private extern static bool InternetGetConnectedState(out int Description, int ReservedValue); public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { int Desc; MessageBox.Show(InternetGetConnectedState(out Desc, 0).ToString()); }
La pena es que con esta solo me aparece un mensaje True o false ( en el 2 codigo ), lo que quiero en realidad es saber como podría hacerse : si la pagina del form1 esta conectada a nuestro navegador entonces aparezca en el label que la conexión se hizo correctamente, si no se puede de esta forma con la de internet me vale. Gracias
Título: Re: Una ayuda con un proyecto de c#?
Publicado por: Eleкtro en 2 Noviembre 2014, 14:05 pm
lo que quiero en realidad es saber como podría hacerse : si la pagina del form1 esta conectada a nuestro navegador entonces aparezca en el label que la conexión se hizo correctamente Vamos a ver, ¿lo que quieres es esperar a que la página se cargue del todo en el WebBrowser, y luego mostrar un "mensaje" de validación?. Entonces suscríbete al evento DocumentCompleted del WebBrowser ' [WebBrowser] - Navigate And Wait ' ' By Elektro H@cker ' ' Usage Examples: ' NavigateAndWait(WebBrowser1, "www.google.com") : MsgBox("Webpage is ready!") ''' <summary> ''' Navigates to an url and waits the page to be loaded. ''' </summary> ''' <param name="url">Indicates the url to navigate.</param> ''' <param name="newWindow">Indicates whether the url should open into a new browser window.</param> Private Sub NavigateAndWait(ByVal Browser As WebBrowser, ByVal url As String, Optional newWindow As Boolean = False) With Browser .Tag = False ' IsWebPageLoaded = False AddHandler .DocumentCompleted, AddressOf WebBrowser_DocumentCompleted .Navigate(url, newWindow) Do Until DirectCast(.Tag, Boolean) ' IsWebPageLoaded = True Application.DoEvents() Loop RemoveHandler .DocumentCompleted, AddressOf WebBrowser_DocumentCompleted End With End Sub ''' <summary> ''' Handles the DocumentCompleted event of the WebBrowser control. ''' </summary> ''' <param name="sender">The source of the event.</param> ''' <param name="e">The <see cref="WebBrowserDocumentCompletedEventArgs"/> instance containing the event data.</param> Private Sub WebBrowser_DocumentCompleted(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs) DirectCast(sender, WebBrowser).Tag = True End Sub
C#, traducción al vuelo // [WebBrowser] - Navigate And Wait // // By Elektro H@cker // // Usage Examples: // NavigateAndWait(WebBrowser1, "www.google.com") : MsgBox("Webpage is ready!") /// <summary> /// Navigates to an url and waits the page to be loaded. /// </summary> /// <param name="url">Indicates the url to navigate.</param> /// <param name="newWindow">Indicates whether the url should be open into a new browser window.</param> private void NavigateAndWait(WebBrowser Browser, string url, bool newWindow = false) { var _with1 = Browser; _with1.Tag = false; // IsWebPageLoaded = False _with1.DocumentCompleted += WebBrowser_DocumentCompleted; _with1.Navigate(url, newWindow); // IsWebPageLoaded = True while (!((bool)_with1.Tag)) { Application.DoEvents(); } _with1.DocumentCompleted -= WebBrowser_DocumentCompleted; } /// <summary> /// Handles the DocumentCompleted event of the WebBrowser control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="WebBrowserDocumentCompletedEventArgs"/> instance containing the event data.</param> private void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { ((WebBrowser)sender).Tag = true; } //======================================================= //Service provided by Telerik (www.telerik.com) //=======================================================
PD: Puedes reemplazar la instrucción Application.DoEvents() por un BGWorker. saludos
Título: Re: Una ayuda con un proyecto de c#?
Publicado por: andrecid en 2 Noviembre 2014, 14:13 pm
En realidad no , la página se abre en los navegadores, y lo que quiero es que comprueba si algún navegador tiene la página web abierta
|