麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

開發(fā)網(wǎng)絡(luò)應(yīng)用的5個(gè)技巧

2019-11-18 17:36:04
字體:
供稿:網(wǎng)友
VisualBasic6.0(以下簡稱VB6)以其強(qiáng)大的功能為廣大軟件開發(fā)人員所喜愛,被用來開發(fā)各種應(yīng)用程序。隨著Internet的迅猛發(fā)展,VB6在網(wǎng)絡(luò)方面的應(yīng)用開發(fā)也越來越多。本文介紹筆者在實(shí)際編程開發(fā)中總結(jié)的5個(gè)技巧,希望能為進(jìn)行網(wǎng)絡(luò)開發(fā)的朋友們提供一點(diǎn)參考。
連通檢測
許多應(yīng)用程序常常需要在程序中直接進(jìn)行聯(lián)網(wǎng)操作,以便進(jìn)行一些必要的處理(如在線注冊和在線幫助等),這就要求我們在程序中建立某些連接。很多軟件在不知用戶是否聯(lián)網(wǎng)的情況下就啟動瀏覽器查找網(wǎng)址,結(jié)果只能查出一錯(cuò)誤網(wǎng)頁,既浪費(fèi)用戶時(shí)間又沒有任何效果。如果應(yīng)用程序在查找網(wǎng)頁之前能自動判斷用戶是否已經(jīng)聯(lián)網(wǎng),就會節(jié)約許多時(shí)間,提高程序運(yùn)行效率。
下面是實(shí)現(xiàn)網(wǎng)絡(luò)連通檢測的VB6代碼:
PRivateSubForm_Load()
IfIsConnected=TRUEThen
MsgBox(“您已經(jīng)連通了Internet!”)
EndIf
IfIsConnected=FALSEThen
MsgBox(“您還沒有連通Internet!”)
EndIf
EndSub
 
OptionExplicit
/*有關(guān)的API聲明和定義*/
PublicDeclareFunctionRasEnumConnectionsLib“RasApi32.dll”Alias“RasEnumConnectionsA”(lpRasConAsAny,lpcbAsLong,lpcConnectionsAsLong)AsLong
 
PublicDeclareFunctionRasGetConnectStatusLib“RasApi32.dll”Alias“RasGetConnectStatusA”(ByValhRasConAsLong,lpStatusAsAny)AsLong
 
/*常數(shù)和變量的設(shè)定*/
PublicConstRAS95_MaxEntryName=256
PublicConstRAS95_MaxDeviceType=16
PublicConstRAS95_MaxDeviceName=32
PublicTypeRASCONN95
dwSizeAsLong
hRasConAsLong
szEntryName(RAS95_MaxEntryName)AsByte
szDeviceType(RAS95_MaxDeviceType)AsByte
szDeviceName(RAS95_MaxDeviceName)AsByte
EndType
PublicTypeRASCONNSTATUS95
dwSizeAsLong
RasConnStateAsLong
dwErrorAsLong
szDeviceType(RAS95_MaxDeviceType)AsByte
szDeviceName(RAS95_MaxDeviceName)AsByte
EndType
 
/*函數(shù)IsConnected返回連通的狀態(tài),如果為True則表示已連通*/
PublicFunctionIsConnected()AsBoolean
DimTRasCon(255)AsRASCONN95
DimlgAsLong
DimlpconAsLong
DimRetValAsLong
DimTstatusAsRASCONNSTATUS95
TRasCon(0).dwSize=412
lg=256*TRasCon(0).dwSize
RetVal=RasEnumConnections(TRasCon(0),lg,lpcon)
IfRetVal<>0Then
MsgBox“錯(cuò)誤”
ExitFunction
EndIf
Tstatus.dwSize=160
RetVal=RasGetConnectStatus(TRasCon(0)
.hRasCon,Tstatus)
IfTstatus.RasConnState=&H2000Then
IsConnected=TRUE
Else
IsConnected=FALSE
EndIf
EndFunction
啟動撥號網(wǎng)絡(luò)中的連接
由于撥號網(wǎng)絡(luò)不是一個(gè)可執(zhí)行文件,所以要啟動撥號網(wǎng)絡(luò),需要借助explorer.exe。但若是要啟動撥號網(wǎng)絡(luò)中的某一個(gè)連接,則要借助rundll.exe和rnaui.dll兩個(gè)文件。啟動方法如下(假定此連接名稱為163):
Shell“rundllrnaui.dll,RnaDial163”,vbNormalFocus
上面假定了連接名稱,但在實(shí)際編程中我們是不知道連接名稱的。在窗體上放置一個(gè)命令按鈕(cmdCallConnect),在其單擊事件中進(jìn)行連接處理。下面的代碼介紹如何取得默認(rèn)的連接名稱并啟動它:
OptionExplicit
/*有關(guān)的API聲明*/
PrivateDeclareFunctionRegOpenKeyExLib“advapi32”Alias“RegOpenKeyExA”(ByValhKeyAsLong,ByVallpSubKeyAsString,ByValulOptionsAsLong,ByValsamDesiredAsLong,phkResultAsLong)AsLong
 
PrivateDeclareFunctionRegQueryValueExLib“advapi32”Alias“RegQueryValueExA”(ByValhKeyAsLong,ByVallpValueNameAsString,ByVallpReservedAsLong,ByReflpTypeAsLong,ByValszDataAsString,ByReflpcbDataAsLong)AsLong
 
PrivateDeclareFunctionRegCloseKeyLib“advapi32”(ByValhKeyAsLong)AsLong
 
/*常數(shù)的設(shè)定*/
ConstHKEY_CURRENT_USER=&H80000001
ConstERROR_SUCCESS=0
在命令按鈕(cmdCallConnect)中加入如下代碼:
PrivateSubcmdCallConnect_Click()
/*啟動默認(rèn)撥號連接*/
Shell“rundllrnaui.dll,RnaDial”+GetConnect,vbNormalFocus
EndSub
 
/*取得連接的函數(shù)(GetConnect)*/
PublicFunctionGetConnect()AsString
DimhKeyAsLong
DimSubKeyAsString
/*主鍵*/
hKey=HKEY_CURRENT_USER
/*子鍵*/
SubKey=“Remoteaccess
/*取得默認(rèn)連接名*/
GetConnect=GetRegValue(hKey,SubKey,“Default”)
EndFunction
/*取得注冊的函數(shù)(GetRegValue)*/
PublicFunctionGetRegValue(hKeyAsLong,lpszSubKeyAsString,szKeyAsString)AsVariant
OnErrorGoToErrorRoutineErr:
DimphkResultAsLong
DimlResultAsLong
DimszBufferAsString
DimlBuffSizeAsLong
/*創(chuàng)建緩沖區(qū)*/
szBuffer=Space(255)
lBuffSize=Len(szBuffer)
/*打開注冊鍵*/
RegOpenKeyExhKey,lpszSubKey,0,1,phkResult
/*取得查詢結(jié)果*/
lResult=RegQueryValueEx(phkResult,szKey,0,0,szBuffer,lBuffSize)
/*關(guān)閉注冊鍵*/
RegCloseKeyphkResult
/*返回結(jié)果*/
IflResult=ERROR_SUCCESSThen
GetRegValue=Left(szBuffer,lBuffSize-1)
Else
GetRegValue=“”
EndIf
ExitFunction
/*意外處理*/
ErrorRoutineErr:
GetRegValue=“”
EndFunction
設(shè)計(jì)E-mail的接收部分
在VB6菜單上點(diǎn)擊“工程/部件...”,彈出“部件”對話框,在對話框的控件卡中選中MicrosoftMAPIControls6.0控件,點(diǎn)擊“確定”按鈕后,工具箱上增加了MAPIMessage和MAPIsession兩個(gè)圖標(biāo)。
在Form上加入一個(gè)MAPIMessage控件,取名為MAPIMessage1;再加入一個(gè)MAPISession控件,取名為MAPISession1;再加入三個(gè)TextBox控件,分別取名為Subject、Content和Indexno,將它們的Caption分別改為郵件標(biāo)題、郵件內(nèi)容和郵件索引號;在TextBox前各加入一個(gè)Label控件,將Caption分別改為標(biāo)題、內(nèi)容和索引號。
將MAPIMessage1的各項(xiàng)屬性設(shè)置如下:
●DownLoadMail=TRUE;
●LogonUI=TRUE;
●NewSession=FALSE;
●UserName=“接收Email”。
在Form上加入一個(gè)按鈕(Getmail),將其Caption改為取郵件。
在Getmail_Click()事件中加入以下程序代碼,程序的功能是使我們接收Email。
MAPIMessage1.Fetch
Form1.Caption=MAPIMessage1.MsgCount
MAPIMessage1.MsgIndex=CINT(Indexno.text)
Subject.Text=MAPIMessage1.MsgNoteText
Content.Text=MAPIMessage1.MsgSubject
其中Fetch命令用來將信件抓到系統(tǒng)存儲器的inbuffer中。我們將信件抓回來后,可以通過MsgCount屬性知道信件數(shù)量,接著可以用MsgIndex設(shè)置要看哪一封信件的內(nèi)容、標(biāo)題等。
設(shè)計(jì)E-mail的發(fā)送部分
1.參數(shù)設(shè)置
進(jìn)入Exchange系統(tǒng),選擇新增設(shè)置文件后屏幕上會顯示所需要的信息服務(wù),選擇InternetMail。
把設(shè)置文件的名稱設(shè)為test。屏幕會顯示兩個(gè)選項(xiàng),您可以選擇以Modem方式或以Network方式連接。筆者所用的是Modem方式;假若您是使Internet專線,就要選擇Network方式。
選擇Modem方式后,Exchange會要求我們輸入郵件服務(wù)器的ip地址。接著將TransformMessage的模式設(shè)置為Automatic,這樣當(dāng)我們連接到郵件服務(wù)器時(shí),新的信息會自動下載到本地端。接下來,將您所使用的Email地址、全名、口令和下載路徑等一一設(shè)置好。
2.程序設(shè)計(jì)
在Form上加入一個(gè)MAPIMessage控件,取名為MAPIMessage1;加入一個(gè)MAPISession控件,取名為MAPISession1;并加入三個(gè)TextBox控件,取名為Subject、Content和Addr。并在三個(gè)TextBox前各加入一個(gè)Label,將Caption分別改為標(biāo)題、內(nèi)容和地址。
將MAPIMessage1的各項(xiàng)屬性設(shè)置如下:
●DownLoadMail=TRUE;
●LogonUI=TRUE;
●NewSession=FALSE;
●UserName=“發(fā)送Email”。
這里將DownLoadMail設(shè)置為TRUE,當(dāng)程序和郵件服務(wù)器第一次連接時(shí),會將新的郵件下載到本地端。將LogonUI設(shè)置為TRUE,則當(dāng)您程序中Logon名稱輸入錯(cuò)誤時(shí),系統(tǒng)會顯示一個(gè)MessageBox來讓您輸入正確的名稱。
由于這個(gè)程序僅使用一個(gè)Session,所以可將NewSession設(shè)置成FALSE。如果您有許多Session要建立的話,則將它設(shè)置成TRUE。UserName中所填的,是我們在Exchange中所新增的設(shè)置文件名稱,如果沒有填內(nèi)容的話,系統(tǒng)將會顯示一些MessageBox請您輸入文件。
在Form上加入三個(gè)按鈕,Logon、Logoff和Send,并分別將它們的Caption改為登錄、離網(wǎng)和發(fā)送。
在Logon_Click()事件中加入以下程序代碼,程序的功能是使我們登錄到郵件服務(wù)器:
MAPISession1.SignOn
MAPIMessage1.SessionID=MAPISession1.SessionID
sgBox“YourIDis”+Str
(MAPISession1.SessionID)
其中MAPISession1.SignOn是作登錄的動作。在登錄時(shí),因?yàn)橐呀?jīng)將MAPIMessage1控件的DownLoadMail屬性設(shè)置為TRUE,所以可以在屏幕上看到MessageBox,顯示系統(tǒng)正在下載郵件。登錄成功后,系統(tǒng)會傳回一個(gè)SessionID,將該ID填入MAPIMessage1的SessionID中,這樣就可以利用該Session來傳送Email,同時(shí)用MessageBox通知用戶發(fā)送成功。
在Logoff_Click()事件中加入以下程序代碼,程序的功能是使我們離開郵件服務(wù)器:
MAPIS1.SignOff
在Send_Click()事件中加入以下程序代碼,程序的功能是使我們發(fā)送Email:
MAPIMessage1.Compose
MAPIMessage1.RecipDisplayName=Addr.text
MAPIMessage1.AddressResolveUI=TRUE
MAPIMessage1.MsgSubject=Subject.text
MAPIMessage1.MsgNoteText=Content.text
MAPIMessage1.Send
MsgBox“您發(fā)送成功啦!”
其中Compose命令的主要目的是使您可以改變RecipDisplayName的內(nèi)容,將所需傳送的Email地址、主題和文章內(nèi)容分別填入RecipDisplayName、MsgSubject和MsgNoteText,接著用Send命令發(fā)送出去。
訪問Internet并調(diào)用Explorer
1.實(shí)現(xiàn)方法和控件介紹
  首先在VB6菜單上點(diǎn)擊“工程/部件...”,彈出“部件”對話框,在對話框的控件卡中選中MicrosoftInternetControls控件,點(diǎn)擊“確定”按鈕后工具箱上增加一個(gè)WebBrowser圖標(biāo),將它加到Form中。
該控件有以下幾個(gè)重要的方法和事件:
●GoHome:裝入IE設(shè)定的起始頁;
●Navigate:裝入頁面,如Object.Navigateurl,其中url為URL地址,如http://www.microsoft.com;
●GoBack:返回上一個(gè)頁面;
●GoForward:進(jìn)入下一個(gè)頁面;
●Stop:停止載入頁面;
●BeforeNavigateEvent:在每次裝入頁面前調(diào)用該事件;
●StatusTextChangeEvent:每次瀏覽器的操作狀態(tài)改變時(shí)調(diào)用該事件。
2.具體的訪問方法
將WebBrowser圖標(biāo)添加到Form中。并在Form上添加4個(gè)命令按鈕,Name屬性分別為:GoButton、BackButton、ForwardButton和StopButton,通過這4個(gè)命令按鈕可以實(shí)現(xiàn)對瀏覽器的操作。在Form上添加一個(gè)TextBox控件,用來輸入和顯示當(dāng)前的頁面地址。在Form上添加一個(gè)Label控件,用來顯示當(dāng)前瀏覽器操作狀態(tài)。
/*載入Form*/
PrivateSubForm_Load()
/*程序裝入后進(jìn)入IE設(shè)定的起始頁*/
WebBrowser1.GoHome
EndSub
 
/*改變Form尺寸*/
PrivateSubForm_Resize()
/*改變窗口大小后同時(shí)改變控件的大小*/
WebBrowser1.Width=Form1.ScaleWidth
WebBrowser1.Height=Form1.ScaleHeight-900
Label1.Width=Form1.ScaleWidth
Label1.Top=Form1.ScaleHeight-300
EndSub
 
PrivateSubBackButton_Click()
/*返回上一個(gè)頁面*/
WebBrowser1.GoBack
EndSub
 
PrivateSubForwardButton_Click()
/*進(jìn)入下一個(gè)頁面*/
WebBrowser1.GoForward
EndSub
 
PrivateSubGoButton_Click()
/*瀏覽輸入的頁面*/
WebBrowser1.Navigate(Text1.Text)
EndSub
 
PrivateSubStopButton_Click()
/*停止瀏覽*/
WebBrowser1.Stop
EndSub
 
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
/*輸入地址后進(jìn)行瀏覽*/
IfKeyAscii=13Then
WebBrowser1.Navigate(Text1.Text)
EndIf
EndSub
 
PrivateSubWebBrowser1_BeforeNavigate(ByValURLAsString,ByValFlagsAsLong,ByValTargetFrameNameAsString,PostDataAsVariant,ByValHeadersAsString,CancelAsBoolean)
/*將當(dāng)前顯示的頁面的URL地址顯示在Text1上*/Text1.Text=URL
EndSub
 
PrivateSubWebBrowser1_StatusTextChange(ByValTextAsString)
/*Label1顯示當(dāng)前頁面裝入情況*/
Label1.Caption=Text
EndSub->


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 水卜樱一区二区av | 日韩av电影在线观看 | 国产91一区| 欧美亚洲综合网 | 热久久成人 | 久久久久91视频 | 日韩在线欧美在线 | 久草在线视频首页 | 精品一区二区三区免费 | 中国av免费观看 | 免费黄色小视频网站 | 日本aaaa片毛片免费观蜜桃 | 久久久国产精品成人免费 | 免费久久精品 | 全网免费毛片 | 美国黄色毛片女人性生活片 | 免费放黄网站在线播放 | 国产免费专区 | 亚洲综合一区在线观看 | 欧美激情综合网 | 毛片视频播放 | av电影免费在线 | 99精品视频免费看 | 91午夜视频 | 中文字幕涩涩久久乱小说 | 性猛交ⅹxxx乱巴西 在线播放中文 | 亚洲视屏 | 免费国产一区 | 成人不卡 | 在线看免费观看日本 | 久久久久久久久久久久久久av | 亚洲极色 | 国产精品久久久久久久久久久久久久久久 | 国产精品免费一区二区 | 欧美色爱综合 | 久久精品亚洲一区二区 | 在线小视频国产 | 91成人影库 | 中文字幕一区二区三区久久 | 久久久精品视频网站 | 久久国产一二三 |