none
Aprire un browser RRS feed

  • Domanda

  • Ciao. Vorrei sapere come posso fare per far si che all'avvio del mio programma se c'è connessione ad internet (e no se è connesso al modem) mi debba aprire il browser, mi spiego meglio.  Allora io per Vvedere se è connesso al modem io ho usato questo codice

    if my . computer . Network . IsAvailable  =  true. 
    Process . iniziare . ( "chrome.exe" )

    e quest'altro

    Import.sistem . Runtime . InteropServices
    
    Public  Class  Form1
    
        < DllImport ( "Wininet.dll" )> _
     Public  Shared  Function  InternetCheckConnection ( ByVal lpszUrl As  String ,  ByVal dwFlags As  Int32 ,  ByVal dwReserved As  Int32 )  As  Boolean 
        End  Function
    
        Const FLAG_ICC_FORCE_CONNECTION As  Int32  =  1 
        Private  Sub  Timer1_Tick ( sender As  Object , e As  EventArgs )  Handles  Timer1 . Tick 
            Dim sito_riferimento =  "http://www.google.com"
    
            Dim collegato Vieni  Boolean  =  InternetCheckConnection ( sito_riferimento , FLAG_ICC_FORCE_CONNECTION ,  0 )
    
            If collegato then 
                Process . Inizia ( "chrome.exe" ) 
                Me . Chiudi () 
            Else 
                Label1 . testo ( "non connesso" ) 
            End  Se 
        End  Sub
    
        Privato  Sub  Form1_Load ( mittente come  oggetto , e come  EventArgs )  Handles  MyBase . Caricare 
            Timer1 . Avviare () 
        End  Sub 
    End  Class

    e quest'altro Ancora

    Private  Sub  Timer1_Tick ( ByVal sender As  Object ,  ByVal e As  EventArgs )  Handles  Timer1 . Tick 
            Dim sito_riferimento =  "http://www.google.com"
    
            Dim collegato Vieni  Boolean  =  InternetCheckConnection ( sito_riferimento , FLAG_ICC_FORCE_CONNECTION ,  0 )
    
            Se collegato Poi 
                Process . Inizia ( "chrome.exe" ) 
                Me . Chiudi () 
            Else 
                Label1 . Text  =  "non connesso" 
            End  Se 
        End  Sub


    poi con QUESTO

    If My . Computer . Network . IsAvailable Then Dim connesso As Boolean = My . Computer . Network . Ping ( "www.google.com" ) If connesso Then

    state = "connesso" End If End If Label1 . Text = Stato


    Anché QUESTO

    Importazioni  di Sistema . Net 
    Importa  Sistema . Text
    
    Public  Class  Form1
    
        Private  Sub  Form1_Load ( ByVal sender As  System . Object ,  ByVal e As  System . EventArgs )  Handles  MyBase . Load 
            Timer1 . Interval  =  2000 
            Timer1 . Start () 
        End  Sub
    
        Privato  Sub  Timer1_Tick ( ByVal sender venire  Sistema . Object ,  ByVal e vengono  Sistema . EventArgs )  Maniglie  Timer1 . Tick
    
            Dim collegato Vieni  Boolean  =  False
    
            Prova 
                Dim ip Vieni  IPHostEntry  =  Dns . GetHostEntry ( "www.google.com" )
    
                Se ip . AddressList . Lunghezza  >  0  Quindi collegato =  true 
                End  Se
    
            Cattura ex Vieni  Exception collegato =  False 
            End  Try
    
            Se collegato then 
                Timer1 . Arresto () 
                Process . Avviare ( "firefox" ) 
            End  Se
    
        End  Sub

    ma niente. Mi da sempre lo stesso difetto.Come posso fare?



    • Modificato Jake41 mercoledì 16 aprile 2014 17:51
    • Spostato Irina Turcu giovedì 26 giugno 2014 09:11 Spostato thread sul forum più appropriato.
    mercoledì 16 aprile 2014 16:48

Tutte le risposte

  • Ciao,

    potresti utilizzare le seguenti funzioni

        Public Shared Function isConnesso() As Boolean
            Try
                Using client As New System.Net.WebClient()
                    Using stream = client.OpenRead("http://www.google.com")
                        Return True
                    End Using
                End Using
            Catch
                Return False
            End Try
        End Function
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            If isConnesso() Then
                Process.Start("C:\Program Files\Google\Chrome\Application\chrome.exe")
            Else
                MsgBox("Non connesso")
            End If
        End Sub

    In sostanza, durante il caricamento del tuo Form (evento Load), verrà chiamata la funzione isConnesso(), la quale cercherà di aprire un flusso di lettura verso l'indirizzo specificato (nel nostro caso, google.com, ma può essere un sito qualsiasi). Se riesce nell'intento, significa che la postazione è affacciata su Internet, e restituirà quindi il valore booleano di True.

    A seconda del valore di ritorno di tale funzione, nel mio esempio lancerò Chrome (indicandone il path completo), oppure emetterò un messaggio che avvisa della mancata connessione. Naturalmente, questa fase è personalizzabile a seconda delle tue necessità.


    Emiliano Musso

    giovedì 17 aprile 2014 14:01
    Moderatore
  • Mi apre il browser quando si connette al modem e no quando c'è l'accesso ad internet
    mercoledì 23 aprile 2014 08:45
  • Ti proporrei/chiederei allora di dettagliare la problematica in maniera più capillare, magari anche con qualche screenshot. Infatti, il codice che ti ho suggerito restituisce correttamente False se per qualche ragione il sito "bersaglio" non è raggiungibile.

    Detto ciò, nel caso opposto significa non solo che il pc è connesso ad Internet, ma che nel tentativo di contattare un sito è stato aperto un canale dati valido, ovvero è presente un accesso "funzionante".


    Emiliano Musso

    mercoledì 23 aprile 2014 15:16
    Moderatore