在應用程式中實現RAS撥號 (轉)

worldblog發表於2007-12-04
在應用程式中實現RAS撥號 (轉)[@more@]

在應用中實現RAS撥號

王濤 訪問服務(RAS)是 NT操作提供的系統服務之一, 透過電話線可以使單獨的接入,或透過兩個RAS對撥使兩個 互連。此項服務的功能可以使遠端的計算機端點以較低的費用同網路連線。 由於的大量使用,遠端訪問服務功能也被廣泛應用,在許多具體的應用程式中,均已透過遠端訪問服務來實現對遠端的資源共享等功能。連通遠端訪問服務,只要從遠端客戶機撥通撥號網路就可以了,結束通話就結束連線,滑鼠操作Windows 9 5中的撥號網路可以直接撥通和結束通話。但有些時候我們希望在應用程式中RAS 撥號和結束通話對不可見,那麼就需要相應的程式控制來實現RAS撥通和結束通話。 Windows 95提供了RasDial,系統中建好的撥號網路連線,完成RAS撥號, 同時還提供了API函式RasHangUp斷開連線。RasD ial的原形如下: D RasDial(LPRASDIALEXTENSIONS IpRasDialExtensions,LP TSTR IpszPhonebo ok,LPRASDIALPARAMS IpRasDialParams,DWORD dw NotifierType,LPVOID IpvNotifier,L PHRANN IphRasConn) 此函式的第3個引數為指向RASDIALPARAMS型結構體的指標,它提供了RAS撥號的引數;第5個引數為撥號完成後執行的回撥函式;第 6個引數是LPHRASCONN型的指標,撥號連線建立好之後將返回此連線的控制程式碼;其他3個引數為NULL即可。函式呼叫如果成功將返回零,否則返回錯誤程式碼,此錯誤程式碼的含義可以在頭Raserror.h中查到。 RASDIALPARAMS型結構體包含7個資料成員:dwSize、szEntryName 、szPhoneNumber、szCallbackNumber、szUserName、szPassword和s zain,它們的作用如右表所示。 要結束通話已撥通的連線使用RasHangUp函式,需要的引數是此連線的連線控制程式碼。下面介紹使用VC完成RAS撥號的一個例子,其中我們假設RA S端NT連線的內部分機的電話號碼是"22",具體步驟如下: 1. 配置好調變解調器,然後在Windows 95的撥號網路中建立一個名為dial的連線。 2. 建立一個Visual C的應用,在Setting中為應用程式加入R asapi32.lib靜態庫。 3. 新建一個對話方塊,在其上加兩個按鈕,一個用於撥通,一個用於結束通話。 4. 在滑鼠點選撥通按鈕的響應函式中加入以下程式碼: RASDIALPARAMS rdParams; DWORD dwRet; rdParams.dwSize=sizeof(RASDIALPARAMS); strcpy(rdParams.szEntryName,"dial"); strcpy(rdParams.szPhoneNumber,"22"); strcpy(rdParams.szCallbackNumber,"*"); strcpy(rdParams.szUserName,"dial"); rdParams.szPassword='; strcpy(rdParams.szDomain,"dial"); hRasConn=NULL; dwRet=RasDial(NULL,NULL,&rdParams,0L,(RASDIALFUNC)RasDia lFunc,&hRasConn) if(dwRet!=0){ //deal with error… } 5. 在此響應函式之前加入如下程式碼: VOID WINAPI RasDialFunc(UINT unMsg,RASCONNSTATE rasconnstate,DWORD dwError) { } 6. 在滑鼠點選結束通話按鈕的響應函式中加入如下程式碼: DWORD dwRet; dwRet= RasHangUp(hRasConn); 7. 最後編譯執行程式。表1 RASDIALPARAMS型結構體資料成員表 (作者地址:wangtaowt@.com)




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-988016/,如需轉載,請註明出處,否則將追究法律責任。

相關文章