Visual Basic 6.0(以下簡(jiǎn)稱VB 6)以其強(qiáng)大的功能為廣大軟件開發(fā)人員所喜愛,被用來(lái)開發(fā)各種應(yīng)用程序。隨著Internet的迅猛發(fā)展,VB6在網(wǎng)絡(luò)方面的應(yīng)用開發(fā)也越來(lái)越多。本文介紹筆者在實(shí)際編程開發(fā)中總結(jié)的5個(gè)技巧,希望能為進(jìn)行網(wǎng)絡(luò)開發(fā)的朋友們提供一點(diǎn)參考。
連通檢測(cè)
許多應(yīng)用程序常常需要在程序中直接進(jìn)行聯(lián)網(wǎng)操作,以便進(jìn)行一些必要的處理(如在線注冊(cè)和在線幫助等),這就要求我們?cè)诔绦蛑薪⒛承┻B接。很多軟件在不知用戶是否聯(lián)網(wǎng)的情況下就啟動(dòng)瀏覽器查找網(wǎng)址,結(jié)果只能查出一錯(cuò)誤網(wǎng)頁(yè),既浪費(fèi)用戶時(shí)間又沒有任何效果。如果應(yīng)用程序在查找網(wǎng)頁(yè)之前能自動(dòng)判斷用戶是否已經(jīng)聯(lián)網(wǎng),就會(huì)節(jié)約許多時(shí)間,提高程序運(yùn)行效率。
下面是實(shí)現(xiàn)網(wǎng)絡(luò)連通檢測(cè)的VB 6代碼:
Private Sub Form_Load()
If IsConnected = TRUE Then
MsgBox ("您已經(jīng)連通了Internet!")
End If
If IsConnected = FALSE Then
MsgBox ("您還沒有連通 Internet!")
End If
End Sub
Option Explicit
/*有關(guān)的API聲明和定義*/
Public Declare Function RasEnumConnections Lib "RasApi32.dll" Alias "RasEnumConnectionsA" (lpRasCon As Any, lpcb As Long, lpcConnections As Long) As Long
Public Declare Function RasGetConnectStatus Lib "RasApi32.dll" Alias "RasGetConnectStatusA" (ByVal hRasCon As Long, lpStatus As Any) As Long
/*常數(shù)和變量的設(shè)定*/
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
/*函數(shù)IsConnected返回連通的狀態(tài),如果為True則表示已連通*/
Public Function IsConnected() As Boolean
Dim TRasCon(255) As RASCONN95
Dim lg As Long
Dim lpcon As Long
Dim RetVal As Long
Dim Tstatus As RASCONNSTATUS95
TRasCon(0).dwSize = 412
lg = 256 * TRasCon(0).dwSize
RetVal = RasEnumConnections(TRasCon(0), lg, lpcon)
If RetVal <> 0 Then
MsgBox "錯(cuò)誤"
Exit Function
End If
Tstatus.dwSize = 160
RetVal = RasGetConnectStatus(TRasCon(0).hRasCon,Tstatus)
If Tstatus.RasConnState = &H2000 Then
IsConnected = TRUE
Else
IsConnected = FALSE
End If
End Function