麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Delphi > 正文

在DELPHI程序中撥號上網

2019-11-18 18:58:02
字體:
來源:轉載
供稿:網友
用MODEM撥號上網,仍是大多數個人網民選擇上網的方式.如果能在我們的應用程序中啟動撥號連接(如IE瀏覽器程序中的自動撥號功能),無疑將會方便我們的軟件用戶(不用再切換應用程序,運行撥號網絡),提高我們的軟件的友好性從而提高軟件的競爭力.
  在WIN9X下,如果安裝了撥號網絡,則在WINDOWS系統的系統目錄System下將有兩個撥號網絡管理程序庫RasApi32.DLL和RasApi16.DLL,我們可利用其中的函數來創建、修改撥號連接,并利用指定的撥號連接進行撥號上網。

一、新建撥號連接
  當WIN9X系統中已經建立了撥號連接,則可利用現成的撥號連接。如果沒有撥號連接,則需要新建一個撥號連接。RasAPI中提供了相應的函數,其函數名為RasCreatePhonebookEntryA,函數原型為:
function RasCreatePhonebookEntryA( hwnd : THandle;lpszPhonebook: pchar ) : DWord;
stdcall; { 位于interface部分 }
function RasCreatePhonebookEntryA ; external ’Rasapi32.dll’;{ 位于implementation部分 }
  參數:
    hwnd(THandle):新建撥號連接窗口的父窗口的句柄,可以為TForm的Handle,為NIL表;Windows桌面(DeskTop)
    lpszPhonebook(pchar):電話本名稱,在Win9X下無作用,可設為空字符串
  函數返回值:
    0表示執行成功;否則為錯誤.

    下面是一個新建撥號連接的例子.
{ 新建撥號連接 }
PRocedure TForm1.Button1Click(Sender: TObject);
var
   dwResult : DWORD;
begin
     //在當前窗口中新建撥號連接
     dwResult := RasCreatePhonebookEntryA( handle, ’’ );
     if dwResult = 0 then
        memo1.lines.add(’新建撥號連接成功!’)
     else
        memo1.lines.add(’新建撥號連接失敗!’)
end;

二、修改指定撥號連接的屬性
  如果用戶需要修改撥號連接的屬性如電話號碼、國家及區號、連接方式、服務器類型等,可以用RasAPI函數來實現,其函數名為RasEditPhonebookEntryA,函數原型為:
function RasEditPhonebookEntryA( hwnd : THandle; lpszPhonebook: pchar;
lpszEntryName: pchar ) : DWORD;stdcall; { 位于interface部分 }
function RasEditPhonebookEntryA; external ’Rasapi32.dll’;{ 位于implementation部分 }
  參數:
    hwnd(THandle):新建撥號連接窗口的父窗口的句柄,可以為TForm的Handle,為NIL表示
                         Windows桌面(DeskTop)
    lpszPhonebook(pchar):電話本名稱,在Win9X下無作用,可設為空字符串
        lpszEntryName:( pchar):要修改的撥號連接的名稱,如’163’、’169’等
  函數返回值:
    0表示執行成功;否則為錯誤.

    下面是一個修改指定撥號連接屬性的例子.
{ 修改指定撥號連接屬性 }
procedure TForm1.Button2Click(Sender: TObject);
var
   dwResult : DWORD;
   strDialName : string;
begin
     strDialName := ’163’;//撥號連接的名稱設為163
     //在當前窗口中指定修改撥號連接的屬性
     dwResult := RasEditPhonebookEntryA( handle, ’’, PChar( strDialName ) );
     if dwResult = 0 then
        memo1.lines.add(’修改撥號連接’ + strDialName + ’成功!’)
     else
        memo1.lines.add(’修改撥號連接’ + strDialName + ’失敗!’)
end;

三、獲取當前系統中可用的撥號連接名稱
  為了讓用戶選擇使用撥號連接進行撥號,我們需要獲取系統中已建立的撥號連接的名稱。在建立了撥號連接后,WIN9X將撥號連接的名稱和屬性寫在了注冊表中,我們可以從注冊表中獲取當前系統中可用的撥號連接名稱及在Internet Explorer中設置的默認連接名稱。
  在注冊表的HKEY_USERS.DefaultRemoteaccessAddresses下,列出了已經在撥號網絡中建立了的撥號連接的名稱及其屬性設置,其中各項目的名稱即為可用的撥號連接的名稱;各項目的值即為各撥號連接的屬性設置.我們只要讀出各項目的名稱即可獲取當前系統中可用的撥號連接名稱.
  如果在Internet Explorer中設置了默認連接名稱(查看=》Internet選項=》連接=》連接=》設置=》使用以下撥號網絡連接),則在注冊表的HKEY_USERS.DefaultRemoteAccess下,有一個字符串類型的鍵值,鍵值名InternetProfile,其值即為Internet Explorer中設置的默認連接名稱。

    下面是一個獲取當前系統中可用的撥號連接名稱的例子.
{ 注意在Uses中增加Registry單元,用于操作注冊表 }
{ 獲取當前系統中可用的撥號連接名稱 }
procedure TForm1.Button3Click(Sender: TObject);
var
   registryTemp : TRegistry;
   stringsTemp : TStringlist;
   intIndex : integer;
begin
       registryTemp := TRegistry.Create;
       stringsTemp := TStringlist.Create;
       with registryTemp do
            begin
                 RootKey := HKEY_USERS;//根鍵設置為HKEY_USERS
         //如果存在子鍵.DefaultRemoteAccessAddresses
                 if OpenKey(’.DefaultRemoteAccessAddresses’,false) then
                    GetValueNames( stringsTemp );//讀出各項目的名稱,即撥號連接名稱
                 CloseKey;
            end;
       //當前系統中可用的撥號連接
       memo1.lines.add( ’******************當前系統中有’+ IntToStr( stringsTemp.count )
                       +’個可用的撥號連接如下****************’);
       for intIndex := 0 to stringsTemp.count - 1 do
           memo1.lines.add( stringsTemp.strings[ intIndex ] );
      
       //列出Internet Explorer中設置的默認連接名稱
       if registryTemp.OpenKey(’.DefaultRemoteAccess’,false) then
          memo1.lines.add( ’Internet Explorer中設置的默認連接名稱為’ +
                           registryTemp.ReadString(’InternetProfile’) );

       //釋放內存
       registryTemp.free;
       stringsTemp.free;
end;

四、用指定的撥號連接撥號
  以上的三個工作的目的就是為了撥號上網,現在就來看看如果用指定的撥號連接撥號上網。最好的方法就是調用WIN9X的撥號網絡服務了,就是運行WIN9X下的現成程序。
  在Delphi程序中可以用如下代碼實現撥號上網:
  winexec(’rundll32.exe rnaui.dll,RnaDial 163’,SW_SHOWNORMAL);
  其中字符串中的最后一個參數“163”為撥號連接的名稱。

  下面是一個用指定的撥號連接撥號上網的例子.
{ 用指定的撥號連接撥號上網 }
procedure TForm1.Button4Click(Sender: TObject);
var
   strDialName : string;
begin
     strDialName := ’163’;//撥號連接的名稱設為163
     memo1.lines.add( ’******************用撥號連接’+ strDialName
                     +’實現撥號上網****************’);
     winexec( PChar(’rundll32.exe rnaui.dll,RnaDial ’ + strDialName),SW_SHOWNORMAL);
end;

以上程序在PWIN98+Delphi3.0下調試通過。

上一篇:在Delphi中處理數據庫日期型字段的顯示與輸入

下一篇:Delphi第三方控件大測評

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: www国产成人免费观看视频,深夜成人网 | 精品黑人一区二区三区国语馆 | 精品国产一区二区三区成人影院 | 久久国产成人精品国产成人亚洲 | 久久久久久久九九九九 | 蜜桃网站在线观看 | 欧美一级久久 | 免费看性xxx高清视频自由 | 曰批全过程120分钟免费69 | 欧产日产国产精品乱噜噜 | 孕妇体内谢精满日本电影 | 国av在线 | 日韩毛片网| 国产成年人视频网站 | 成人区一区二区三区 | a免费看 | 精品国产一级毛片 | 老司机免费福利午夜入口ae58 | 国产一国产精品一级毛片 | 久久久成人动漫 | 久草在线高清 | 国产一级毛片在线看 | 国产精品久久久久一区二区 | 精品不卡| 一级视频在线播放 | 最新中文字幕在线视频 | 国产伦精品一区二区三区在线 | 九草在线 | 激情综合婷婷久久 | 日本在线高清 | 日本中文字幕久久 | 97中文字幕第一一一页 | 午夜影院在线免费观看 | 调教小男生抽打尿孔嗯啊视频 | 午夜伊人 | 亚洲成人自拍电影 | 黄色视屏免费在线观看 | 成人免费网站在线观看 | 欧美性生活视频免费 | 黄色视频一级毛片 | 啊~用cao嗯力cao烂我视频 |