導論 檢查是否能連線到指定的網站 傳回網際網路連線狀態說明字串 從網際網路上取得檔案 設定網路檔案讀取指標 列舉網際網路連線狀態常數 |
啟動網際網路連線 傳回網際網路連線狀態 開始連線網際網路 取得每次可讀取的位元 取得網路檔案總位元數 |
導論:
這個模組完成約在 89/9/12 完成,由於專題討論要報告的文章在 SDOS 上,但用 IE下載全文影像檔每次都在 64 kb 時發生中斷,故只好自己寫個程式來抓原文期刊的全文影像檔,由於未完成 Monkey Test ,所以一直未上網,本模組仍在發展中,部分程式碼尚未充分測試完畢,為配合網友需求,先行將部分程式碼上網,未來仍有可能依個人工作或研究上之需求進行調整
函數名:myInternetAttemptConnect,傳回錯誤訊息代碼
引數 類型 說明 無 - - 範例:
myInternetAttemptConnect
說明:
若使用者使用電話撥接網路,則本函數會通知系統呼叫撥號對話盒,但若網際網路設定為「永遠不撥號連線」時,則本函數將沒有作用,同理,用網路卡或是沒有撥號配接卡的電腦,一樣沒有作用,所以比較接近垃圾級的函數
函數名:myInternetCheckConnection,傳回布林值
引數 類型 說明 lpszUrl 可省略 網址字串,若省略則試圖從系統資料庫內連接最近的網站 wFlags 可省略 強制連線旗標, 0 或 1,預設為強制連線 (1) 範例:
Debug.Print myInternetCheckConnection("http://feitsui.hyd.ncku.edu.tw/")
' 傳回值為 True 或 False說明:
若將強制連線旗標設為 0 ,只要有網路卡或是網際網路設定為「永遠不撥號連線」均會傳回真 (True) ,而強制連線旗標會有一 ping 的動作在內,故若該指定的網站發生故障,仍會傳回否 (False)
函數名:myInternetGetConnectedState,傳回網際網路連線狀態列舉常數
引數 類型 說明 無 - - 範例:
Debug.Print myInternetGetConnectedState
' 傳回 16說明:
傳回值說明請參閱網際網路連線狀態列舉常數,例如傳回值為 86 (1010110) ,則代表區域網路、Proxy、動態 IP 及曾經完成網路設定皆存在
函數名:myInternetGetConnectedStateEx,傳回網際網路連線狀態說明字串
引數 類型 說明 無 - - 範例:
Debug.Print myInternetGetConnectedStateEx
' 傳回 "區域網路連線"說明:
本函數傳回網際網路連線狀態延伸函數,傳回值依網際網路連線狀態列舉常數傳回,視 IE 語系傳回值為不同字串
函數名:myInternetGoOnline,傳回網際網路是否處於線上
引數 類型 說明 lpszUrl 字串 網址字串 範例:
Debug.Print myInternetGoOnline("http://www.microsoft.com/")
' 傳回值為 True 或 False說明:
若有網路卡或是網際網路設定為「永遠不撥號連線」均會傳回真 (True)
函數名:myInternetReadFile,傳回檔案大小或 Byte 陣列
引數 類型 說明 lpszUrl 字串 包含檔名及路徑之網址 lpszFileName 字串 可省略,本地端檔案位置完整路徑,若省略則傳為位元組陣列 lpszTitle 字串 可省略,應用程式標題 FilePointer 長整數 可省略,續傳時選用指標,將從此位置繼續傳遞 GetSize 長整數 可省略,傳址呼叫,目前已取得之檔案大小 nFileSize 長整數 可省略,傳址呼叫,欲取的檔案之總長度 bStop 布林值 可省略,傳址呼叫,是否停止傳遞 範例:
If Dir(sFile) <> "" Then
tBytes = myInternetReadFile(Text1.Text, sFile, App.Title, FileLen(sFile), UrlGetSize, UrlFileSize, bStop)
Else
tGetSize = myInternetReadFile(Text1.Text, sFile, App.Title, , UrlGetSize, , bStop)
End If
' 如果本地端檔案存在則續傳說明:
本函數之 WIN32_FIND_DATA 型態於檔案工具模組中宣告,網址檔案目前僅支援 http 及 ftp 兩種,若是輸入本地端檔名,則將讀取內容直接寫入檔案,傳回檔案總長度,若省略本地端檔名,則將讀取內容寫入記憶體,並傳回位元組陣列,唯過大之檔案將導致記憶體不敷使用,若網站支援續傳,如 IIS 系統,將可依設定位置繼續傳輸,但傳輸前請另行確認前次傳輸之資料是否正確,GetSize、nFileSize、bStop 為呼叫端之私有公變數,配合下載進度使用,使用範例可參考檔案存取內之檔案複製
函數名:myInternetQueryDataAvailable,傳回每次傳輸位元數
引數 類型 說明 hFile 長整數 由 InternetOpenUrl 函數傳回之檔案代碼 範例:
hOpen = InternetOpen(lpszTitle, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
hOpenUrl = InternetOpenUrl(hOpen, lpszUrl, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
tBufferString = myInternetQueryDataAvailable(hOpenUrl)說明:
本函數為從網際網路上取得檔案之子函數, MSDN 建議在使用 InternetReadFile 前,先使用本函數取得適當的位元數,較不會過長的等待
函數名:myInternetSetFilePointer,設定網路檔案讀取指標
引數 類型 說明 hFile 長整數 由 InternetOpenUrl 函數傳回之檔案代碼 hPointer 長整數 檔案指標位置 範例:
hOpen = InternetOpen(lpszTitle, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
hOpenUrl = InternetOpenUrl(hOpen, lpszUrl, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
nStart = myInternetSetFilePointer(hOpenUrl, FilePointer) + 1說明:
本函數為從網際網路上取得檔案之子函數,本函數配合續傳使用,從續船位置繼續讀取網際網路檔案,非 IIS 網站有可能不支援
函數名:myInternetGetFileSize,傳回網路檔案總位元數
引數 類型 說明 hFile 長整數 由 InternetOpenUrl 函數傳回之檔案代碼 範例:
hOpen = InternetOpen(lpszTitle, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
hOpenUrl = InternetOpenUrl(hOpen, lpszUrl, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
nFileSize = myInternetGetFileSize(hOpenUrl)說明:
本函數為從網際網路上取得檔案之子函數,本函數取得網路檔案總位元數,可供百分比計算使用,非 IIS 網站有可能不支援
常數 值 說明 Internet_Connection_Modem &H01 使用 Modem 連接網際網路 Internet_Connection_Lan &H02 使用區域網路連接網際網路 Internet_Connection_Proxy &H04 使用 Proxy 連接網際網路 Internet_Connection_Modem_Busy &H08 Modem 忙線中 Internet_RAS_Installed &H10 動態 IP 系統已安裝完成 Internet_Connection_Offline &H20 處於離線工作 Internet_Connection_Configured &H40 開機後曾經完成連接網際網路設定 說明:
本常數為旗標常數,故各旗標可同時存在,如常數值為 &H6 = &H2 + &H4 時,表示用區域網路及 Proxy 連接網際網路,另 Internet_Connection_Configured 不代表目前狀況