這篇是要說明如何在PDA上用程式撥號連上Internet
開發Smart Device不似DeskTop容易,一直以來我都是半路出家的,很多也都是網路上找來套用的,有些連語法我都看不懂就用了。
在eVB年代,我曾用過DDLconnect跟CeRasDial物件,DDLconnect雖然功能很強,可是正式版要快100美元,後來找 了CeRasDial只要20美元,功能簡單但是至少功能還算穩定,不過事實上我發現CeRasDial其實是偷偷使用DDLconnect(這樣不知道 DDL可不可以去告他,哈...)
這幾個月,想把原先的系統移植到WM5上,發現CeRasDial撥不通(錯誤訊息:900 time out),寫信去問原作者說是不支援.net,(迷之音:喂DDL可是有支援喔),無聊間換成DDL試看看,果然是一樣的結果,錯誤訊息:900 time out。(我就說你是偷包人家的)。
網路上找了快一個禮拜,有人提到在
OpenNETCF中的ConnectionManager物件可以使用,於是就到網站去看看,大概又試了一個禮拜,下載一堆範例程式,可惜在Smart Device上VB是弱勢,要看C怎麼寫,然後想VB怎麼寫。
OpenNETCF 2.0版的connect、EnumDestinations正常,可是disconnect跟status都有問題,雖然如此,已經覺得夠用了
前幾天去逛又發現2.1版的已經釋出,於是下載回來試看看(正式版要錢$900美元...MY GOD,社群版......免費,天啊....我應該算是社群的一員吧??),結果四個常用的方法中connect、disconnect跟status都正常了,可是換EnumDestinations會導致當機,這個問題可以透過參數省略,讓connect撥號預設連線解決。
終歸一句:完美又免費的解決方案。
---------------------------------以下為程式碼-----------------------------
Option Explicit On
Option Strict On
Imports OpenNETCF.Net
Imports System.Net
Module GPRS
Public ConnMgr As New OpenNETCF.Net.ConnectionManager
Public Sub GPRS_Connect(ByVal doconnect As Boolean, ByVal connect_index As Integer)
ConnMgr.Connect(True, OpenNETCF.Net.ConnectionMode.Asynchronous)
End Sub
Public Sub GPRS_handup()
Dim errmes As String
'這裡會有空參考的錯誤訊息
Try
ConnMgr.RequestDisconnect()
Catch err As SystemException
errmes = "err=" & err.ToString & vbCrLf
Catch ex As Exception
errmes = ex.ToString
End Try
End Sub
Public Function GPRS_status() As String
GPRS_status = ConnMgr.Status.ToString
End Function
End Module
---------------------------程式結束-------------------------