?? wzjh48.htm
字號:
   獲取撥號連接的撥號參數RasAPI函數為RasGetEntryDialParams,其函數原型為: <br>   function RasGetEntryDialParams( <br>   lpszPhonebook: pchar;//電話本名稱,在Win9X下無作用,可為空字符串 <br>   pRASDIALPARAMS:LPRASDIALPARAMS;//撥號參數,是一個RASDIALPARAMS類型的指針 <br>   var lpfPassword : WordBool//是否需要用戶密碼 <br>   ) : DWORD; stdcall; <br>   function RasGetEntryDialParams;external RasApiDll name 'RasGetEntryDialParamsA'; <br>    <br>   參數pRASDIALPARAMS是一個RASDIALPARAMS類型的指針,指向一個撥號連接的撥號參數數據 的緩沖區,其中RASDIALPARAMS及LPRASDIALPARAMS的類型說明如下: <br>   LPRASDIALPARAMS = ^RASDIALPARAMS; <br>   RASDIALPARAMS = record <br>   dwSize : DWORD;//該結構所占內存的大小(Bytes),一般設置為SizeOf(RASDIALPARAMS) <br>   szEntryName : array[0..RAS_MaxEntryName] of char;//撥號連接名稱 <br>   szPhoneNumber : array[0..RAS_MaxPhoneNumber] of char;//撥號號碼 <br>   szCallbackNumber : array[0..RAS_MaxCallbackNumber] of char;//回叫號碼 <br>   szUserName : array[0..UNLEN] of char;//用戶名稱 <br>   szPassword : array[0..PWLEN] of char;//用戶密碼 <br>   szDomain : array[0..DNLEN] of char;//域名 <br>   end; <br>    函數返回值為0表示執行成功;否則為錯誤代碼. <br>    下面是一個應用例子,獲取指定撥號連接的撥號參數. <br>   var <br>   dwResult : DWORD; <br>   RASDIALPARAMSData : RASDIALPARAMS; <br>   NeedPWD : WordBool; <br>   begin <br>   //指定撥號連接的名稱 <br>   with RASDIALPARAMSData do <br>   begin <br>   dwSize := sizeof( RASDIALPARAMS );//結構大小 <br>   szEntryName := '163';//指定撥號連接的名稱 <br>   szUserName := '';//其它五個參數初始化 <br>   szPassword := ''; <br>   szDomain := ''; <br>   szCallbackNumber := ''; <br>   szPhoneNumber := ''; <br>   end; <br>   NeedPWD := true;//需要用戶密碼 <br>    <br>   //獲取指定撥號連接的撥號參數 <br>   dwResult := RasGetEntryDialParams( '',@RASDIALPARAMSData,NeedPWD ); <br>    <br>   if dwResult <> 0 then //獲取指定撥號連接的撥號參數失敗 <br>   memo1.lines.add( '獲取'+StrPAS(RASDIALPARAMSData.szEntryName )+'撥號參數失敗:' <br>   + GetRasError( dwResult )) <br>   else <br>   begin//顯示指定撥號連接的撥號參數 <br>   memo1.lines.add( StrPAS(RASDIALPARAMSData.szEntryName )+'撥號參數如下'); <br>   memo1.lines.add( '用戶名稱:' + StrPAS(RASDIALPARAMSData.szUserName )); <br>   memo1.lines.add( '用戶密碼:' + StrPAS(RASDIALPARAMSData.szPassword )); <br>   memo1.lines.add( '域 名:' + StrPAS(RASDIALPARAMSData.szDomain )); <br>   memo1.lines.add( '回叫號碼:' + StrPAS(RASDIALPARAMSData.szCallbackNumber )); <br>   memo1.lines.add( '撥號號碼:' + StrPAS(RASDIALPARAMSData.szPhoneNumber )); <br>   end; <br>   end; <br>    2、設置撥號連接的撥號參數 <br>    設置撥號連接的撥號參數RasAPI函數為RasSetEntryDialParams,其函數原型為: <br>   function RasSetEntryDialParams( <br>   lpszPhonebook: pchar;//電話本名稱,在Win9X下無作用,可為空字符串 <br>   pRASDIALPARAMS:LPRASDIALPARAMS;//撥號參數,是一個RASDIALPARAMS類型的指針 <br>   var lpfPassword : WordBool//是否刪除用戶密碼 <br>   ) : DWORD; stdcall; <br>   function RasSetEntryDialParams;external RasApiDll name 'RasSetEntryDialParamsA'; <br>   參數pRASDIALPARAMS的說明同RasGetEntryDialParams. <br>   參數lpfPassword的含義與RasGetEntryDialParams不同,在此表示是否刪除用戶密碼,為 <br>    TRUE時將原來的用戶密碼刪除. <br>    <br>    函數返回值為0表示執行成功;否則為錯誤代碼. <br>    下面是一個應用例子,設置指定撥號連接的撥號參數. <br>   var <br>   dwResult : DWORD; <br>   RASDIALPARAMSData : RASDIALPARAMS; <br>   RemovePWD : WordBool; <br>   begin <br>   //指定撥號連接的撥號參數 <br>   with RASDIALPARAMSData do <br>   begin <br>   dwSize := sizeof( RASDIALPARAMS );//結構大小 <br>   szEntryName := '163';//指定撥號連接的名稱 <br>   szUserName := 'MyName';//指定用戶名稱 <br>   szPassword := 'MyPassword';//指定用戶密碼 <br>   szDomain := 'MyDomain';//指定域名 <br>   szCallbackNumber := '';//指定回叫號碼 <br>   szPhoneNumber := '';//指定撥號號碼 <br>   end; <br>   RemovePWD := false;//不需要刪除用戶密碼 <br>    <br>   //設置指定撥號連接的撥號參數 <br>   dwResult := RasSetEntryDialParams( '',@RASDIALPARAMSData,RemovePWD ); <br>    <br>   if dwResult <> 0 then //設置指定撥號連接的撥號參數失敗 <br>   memo1.lines.add( '設置'+StrPAS(RASDIALPARAMSData.szEntryName )+'撥號參數失敗:' + GetRasError( dwResult )) <br>   else <br>   begin//顯示指定撥號連接的撥號參數 <br>   memo1.lines.add( StrPAS(RASDIALPARAMSData.szEntryName )+'撥號參數設置成功'); <br>   memo1.lines.add( '用戶名稱:' + StrPAS(RASDIALPARAMSData.szUserName )); <br>   memo1.lines.add( '用戶密碼:' + StrPAS(RASDIALPARAMSData.szPassword )); <br>   memo1.lines.add( '域 名:' + StrPAS(RASDIALPARAMSData.szDomain )); <br>   memo1.lines.add( '回叫號碼:' + StrPAS(RASDIALPARAMSData.szCallbackNumber )); <br>   memo1.lines.add( '撥號號碼:' + StrPAS(RASDIALPARAMSData.szPhoneNumber )); <br>   end; <br>   end; <br>    <br>   四、用指定的撥號連接撥號、掛斷指定的撥號連接 <br>    1、用指定的撥號連接撥號 <br>    撥號有兩種方法,一種是調用撥號網絡中的撥號程序,就象用戶自己用鼠標雙擊撥號連接名稱一 樣,用戶可以修改撥號號碼、用戶名稱和用戶密碼,最后由撥號網絡來完成撥號過程;另一個方法則 是調用RasAPI函數. <br>   (1)用撥號網絡中的撥號程序 <br>    在程序中可以用如下代碼: <br>    winexec('rundll32.exe rnaui.dll,RnaDial 169',SW_SHOWNORMAL); <br>    其中字符串中的最后一個參數"169"為撥號連接的名稱。 <br>   (2)用RasAPI函數撥號 用撥號連接撥號的RasAPI函數為RasDial,其函數原型為: <br>   function RasDial( <br>   pRasDialExtensions : LPRASDIALEXTENSIONS;//在WIN9X下無用,可設置為NIL <br>   lpszPhonebook : PChar;//電話本名稱,在Win9X下無作用,可為空字符串 <br>   lpRasDialParams : LPRASDIALPARAMS;//撥號參數 <br>   dwNotifierType : DWORD;//消息通知方式 <br>   handle : TRasDialFunc;//消息處理事件 <br>   var lphRasConn : DWORD//返回的成功連接的連接句柄 <br>   ) : DWORD; stdcall; <br>   function RasDial;external RasApiDll name 'RasDialA'; <br>    <br>    參數pRASDIALPARAMS的說明同RasGetEntryDialParams. <br>    參數dwNotifierType表示消息通知方式.在撥號過程中,系統發出撥號事件消息可以通知撥號 進度,因而需要提供接受消息的方式和處理消息的函數.當其值為$FFFFFFFF時,則參數handle被 視為一個窗口的句柄,事件消息被發生該窗口處理;當其值為0時,handle被視為TRasDialFunc類型 的函數的指針;當其值為1時,handle被視為TRasDialFunc1類型的函數的指針. <br>    參數handle表示消息處理函數指針,其類型可以THandle、TRasDialFunc、TRasDialFunc1.當該 參數不為NULL或NIL時,其代表的消息處理函數指針將接受撥號進度通知消息;為NIL時,撥號過程由異步方式變為同步方式,直到撥號過程成功或失敗后RasDial函數才返回.詳細可參見Delphi幫助文件中關于RasDial函數的幫助。 <br>    當撥號連接成功時,lphRasConn將表示其連接句柄. <br>    <br>    函數返回值為0表示執行成功;否則為錯誤代碼. <br>    下面是一個應用例子,按指定的撥號參數撥號. <br>    <br>   var <br>   RASDIALPARAMSData : RASDIALPARAMS; <br>   dwResult : DWord; <br>   RasCon : DWord; <br>   begin <br>   //指定撥號連接的撥號參數 <br>   with RASDIALPARAMSData do <br>   begin <br>   dwSize := sizeof( RASDIALPARAMS );//結構大小 <br>   szEntryName := '163';//指定撥號連接的名稱 <br>   szUserName := 'MyName';//指定用戶名稱 <br>   szPassword := 'MyPassword';//指定用戶密碼 <br>   szDomain := 'MyDomain';//指定域名 <br>   szCallbackNumber := '';//指定回叫號碼 <br>   szPhoneNumber := '';//指定撥號號碼 <br>   end; <br>    <br>   //用指定的撥號參數撥號,采用同步撥號方式 <br>   dwResult := RasDial( NIL,'',@RASDIALPARAMSData,0,NIL,RasCon ); <br>    <br>   if dwResult <> 0 then //設置指定撥號連接的撥號參數失敗 <br>   memo1.lines.add( '用'+StrPAS(RASDIALPARAMSData.szEntryName )+'撥號失敗:' <br>   + GetRasError( dwResult )) <br>   else <br>   memo1.lines.add( '用'+StrPAS(RASDIALPARAMSData.szEntryName )+'撥號成功!' ); <br>   end; <br>    <br>    2、掛斷指定的撥號連接 <br>    掛斷撥號連接的RasAPI函數為RasHangUp,其函數原型為: <br>   function RasHangUp( <br>   hRasConn : DWORD//要掛斷的撥號連接的句柄 <br>   ) : DWORD; stdcall; <br>   function RasHangUp;external RasApiDll name 'RasHangUpA'; <br>    函數返回值為0表示執行成功;否則為錯誤代碼. <br>    下面是一個應用例子,掛斷由RasDial建立的撥號連接. <br>    <br>   //掛斷由RasDial建立的撥號連接 <br>   dwResult := RasHangUp( RasCon ); <br>   if dwResult <> 0 then //掛斷失敗 <br>   memo1.lines.add( '掛斷失敗:' + GetRasError( dwResult )) <br>   else <br>   memo1.lines.add( '掛斷成功!'); <br>    <br>   五、獲取當前活動的連接及其連接狀態 <br>    1、獲取當前活動的連接 <br>    獲取當前活動的連接的RasAPI函數為RasEnumConnections,其函數原型為: <br>   function RasEnumConnections( var lprasc <br>    <br>   </font></td> </tr> </table> </td> </tr></table><br><hr SIZE="1" width="90%"></body></html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -