Avatar billede mj18 Nybegynder
23. oktober 2000 - 12:38 Der er 4 kommentarer

URL - lookup

Jeg har lavet et program der vha. en timer periodevis laver en URL-lookup og sender html-koden tilbage til mig.

Problemet er at hvis der ikke er oprettet en internet forbindelse (altså hvis brugeren ikke har kaldt op til sin udbyder) så vil den hele tiden forsøge at kalde op - dvs brugeren vil hele tiden få en \"ring op\" dialogbox smidt i hovedet og det er ikke meningen. Meningen er at den kun skal returnere html-koden fra URL-lookup\'en hvis der ér en forbindelse og IKKE forsøge at kalde op, hvis der ikke er en forbindelse.

Spørgsmålet er så, hvordan gør man dette?
Avatar billede blazer Nybegynder
23. oktober 2000 - 15:25 #1
Private Type RASCONN
    dwSize As Long
    hRasConn As Long
    szEntryName(256) As Byte
    szDeviceType(16) As Byte
    szDeviceName(128) As Byte
    End Type


Private Declare Function RasEnumConnectionsA& Lib \"RasApi32.DLL\" (lprasconn As Any, lpcb&, lpcConnections&)


Private Sub Command1_Click()
    Dim Verbindung As RASCONN
    Dim size, Anz As Long
    Verbindung.dwSize = 412
    size = Verbindung.dwSize


    If RasEnumConnectionsA(Verbindung, size, Anz) = 0 Then


        If Anz = 0 Then
            MsgBox (\"You are Not connected To the net.\")
        Else
            MsgBox (\"You are connected To the net.\")
        End If
    End If
End Sub

Dette kan vel bruges :))
Avatar billede mj18 Nybegynder
24. oktober 2000 - 10:42 #2
Den kode virker kun hvis man har en almindelig Windows opkaldsforbindelse til internettet - ikke hvis man eks. er forbundet via Candis....

Der må være en måde at kunne tjekke om man vha. default browseren kan hente noget html kode - uden at den forsøger at kalde op. Hvis ikke man kan hente html koden er man ikke forbundet.

Jeg bruger OpenURL nu, men den forsøger jo hele tiden at kalde op, hvis der ikke er en forbindelse... kan man ikke lave noget tilsvarende hvor den IKKE forsøger at kalde op ???
Avatar billede blazer Nybegynder
24. oktober 2000 - 15:33 #3
tjohhh.....så skal du vel bruge winsock controllen og tilslutte til port 80 og skrive noget i retning af Get www.anus.dk/index.htm


er lidt indviklet.......
Avatar billede boe Nybegynder
13. november 2000 - 00:24 #4
Put dette i en form load eller en kommando knap

Dim cActive As Boolean
cActive = IsConnected
TxtInternetTjek.Text = cActive


Opret et modul og indsæt følgende kode.

Option Explicit

Declare Function RasEnumConnections Lib \"RasApi32.dll\" Alias _
        \"RasEnumConnectionsA\" (lpRasCon As Any, lpcb As Long, _
        lpcConnections As Long) As Long

Declare Function RasGetConnectStatus Lib \"RasApi32.dll\" Alias _
        \"RasGetConnectStatusA\" (ByVal hRasCon As Long, _
        lpStatus As Any) As Long

Public Const RAS95_MaxEntryName = 256
Public Const RAS95_MaxDeviceType = 16
Public Const RAS95_MaxDeviceName = 32

Public Type RASCONN95
  dwSize As Long
  hRasCon As Long
  szEntryName(RAS95_MaxEntryName) As Byte
  szDeviceType(RAS95_MaxDeviceType) As Byte
  szDeviceName(RAS95_MaxDeviceName) As Byte
End Type

Public Type RASCONNSTATUS95
  dwSize As Long
  RasConnState As Long
  dwError As Long
  szDeviceType(RAS95_MaxDeviceType) As Byte
  szDeviceName(RAS95_MaxDeviceName) As Byte
End Type

Public Function IsConnected() As Boolean

  Dim TRasCon(255) As RASCONN95
  Dim lg As Long
  Dim lpcon As Long
  Dim RetCDec As Long
  Dim Tstatus As RASCONNSTATUS95

  TRasCon(0).dwSize = 412
  lg = 256 * TRasCon(0).dwSize

  RetCDec = RasEnumConnections(TRasCon(0), lg, lpcon)
  Tstatus.dwSize = 160
  RetCDec = RasGetConnectStatus(TRasCon(0).hRasCon, Tstatus)

  If Tstatus.RasConnState = &H2000 Then
      IsConnected = True
  Else
      IsConnected = False
  End If

End Function

kode slut
cActive vil nu returnere henholsvis True hvis du er på nettet og False hvis du ikke er.

Brug så en if Then Else til at afgøre om du skal hente noget fra nettet.

Mvh.
Bjarne





Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester