亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

開發網絡應用的5個技巧

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久九九精品99国产精品| 中文字幕成人在线| 国产91精品久久久久久| 精品国产31久久久久久| 国产成人一区二区三区电影| 日韩av电影在线网| 美女久久久久久久久久久| 国产视频精品一区二区三区| 成人欧美一区二区三区在线| 久久久精品国产一区二区| 97超级碰在线看视频免费在线看| 青草热久免费精品视频| 国产精品爽黄69| 午夜精品视频网站| 精品视频9999| 色综合久久88色综合天天看泰| 色综合老司机第九色激情| 奇米成人av国产一区二区三区| 日韩视频一区在线| 国产成人精品国内自产拍免费看| 人人做人人澡人人爽欧美| 日韩三级影视基地| 久久久精品在线观看| 热久久视久久精品18亚洲精品| 7777kkkk成人观看| 97超级碰在线看视频免费在线看| 久久激情视频免费观看| 久久天天躁夜夜躁狠狠躁2022| 精品久久国产精品| 久久香蕉频线观| 亚洲偷熟乱区亚洲香蕉av| 日韩大陆毛片av| 97免费在线视频| 国语自产偷拍精品视频偷| 久久视频在线直播| 亚洲另类图片色| 北条麻妃一区二区在线观看| 日本中文字幕久久看| 久久网福利资源网站| 7m精品福利视频导航| 欧美日本中文字幕| 欧美性受xxxx白人性爽| 亚洲理论片在线观看| 欧美日韩在线视频一区| 久久久999国产精品| 7777精品视频| 亚洲国产精彩中文乱码av| 91高清在线免费观看| 欧美日产国产成人免费图片| 在线视频欧美日韩| 亚洲加勒比久久88色综合| 亚洲激情自拍图| 8050国产精品久久久久久| 日韩精品视频观看| 亚洲深夜福利在线| 欧美第一黄色网| 久久九九精品99国产精品| 久久成人精品视频| 精品中文字幕在线| 亚洲第一区在线观看| 欧美日韩在线免费观看| 欧美大尺度在线观看| 日韩中文在线视频| 欧美老女人bb| 中文字幕亚洲一区二区三区五十路| 热久久免费国产视频| 日韩av毛片网| 日韩经典第一页| 欧美日韩久久久久| 日韩在线观看免费高清完整版| 日韩高清电影免费观看完整| 欧美高清视频在线播放| 日本欧美爱爱爱| 国产日韩欧美在线播放| 欧美精品18videosex性欧美| 亚洲女人天堂视频| 亚洲色图色老头| 欧美视频在线看| 裸体女人亚洲精品一区| 最近中文字幕mv在线一区二区三区四区| 欧美在线视频免费播放| 成人欧美一区二区三区黑人| 国产精品成人免费视频| 欧美大学生性色视频| 色妞色视频一区二区三区四区| 91在线视频九色| 成人免费视频在线观看超级碰| 国产精品av网站| 在线观看免费高清视频97| 国产精品av在线| 欧美国产一区二区三区| 97视频免费在线看| 日韩美女视频在线观看| 97久久超碰福利国产精品…| 欧美裸体xxxxx| 久久久久久网站| 亚洲香蕉成人av网站在线观看| 国产精品96久久久久久又黄又硬| 热久久这里只有| 欧美韩国理论所午夜片917电影| 91在线免费看网站| 91免费视频国产| 一本一本久久a久久精品牛牛影视| 国产精品视频导航| 日韩视频免费观看| 欧美日韩国产在线看| 最近2019年中文视频免费在线观看| 日韩大胆人体377p| 日韩av综合中文字幕| 亚洲第一免费播放区| 日韩精品中文字幕视频在线| 亚洲精品黄网在线观看| 欧美日韩国产一区二区| 久久国产精品首页| 91在线视频导航| 国产成人精品视| 国产福利成人在线| 久久久国产精彩视频美女艺术照福利| 97在线视频国产| 亚洲福利在线播放| 波霸ol色综合久久| 亚洲欧美日本另类| 亚洲国产精品视频在线观看| 欧美成人自拍视频| 国产精品久久久久久久久借妻| 欧美精品在线看| 亚洲一级免费视频| 国产日韩精品一区二区| 久久亚洲精品国产亚洲老地址| 欧美成人精品在线播放| 成人在线观看视频网站| …久久精品99久久香蕉国产| 欧美精品一区三区| 中文字幕自拍vr一区二区三区| 亚洲国产精品成人va在线观看| 国产在线日韩在线| 在线视频国产日韩| 97国产精品视频人人做人人爱| 亚洲free性xxxx护士hd| 全球成人中文在线| 91九色在线视频| 国产精品无码专区在线观看| 亚洲精品一区二区网址| 国产精品一区二区久久精品| 久久久久久国产免费| 国产精品久久久91| 国产成人精品电影久久久| 久久精品国产视频| 2019日本中文字幕| 亚洲一区美女视频在线观看免费| 最新亚洲国产精品| 亚洲福利视频网| 成人免费福利在线| 国内偷自视频区视频综合| 亚洲美女喷白浆| 97国产精品视频人人做人人爱| xxxxx91麻豆| 国产亚洲免费的视频看| 国内精品美女av在线播放| 亚洲aⅴ日韩av电影在线观看| 亚洲国产中文字幕久久网| 久久久精品久久| 国产精品av免费在线观看| 91在线视频九色|