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
Cita de: andrecid en 2 Noviembre 2014, 13:12 PMlo 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
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