亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 在delphi程序管理撥號網絡 (2000年8月21日).txt

?? 自己對DELPHI學習的一點體會
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
在DELPHI程序管理撥號網絡 (2000年8月21日) 

本站更新  分類:   作者:深圳王發軍  推薦:   閱讀次數:824  
(http://www.codesky.net)  

--------------------------------------------------------------------------------
  用MODEM撥號上網,仍是大多數個人網民選擇上網的方式.如果能在我們的應用程序中管理撥號網絡(如
Foxmail、Sygate中的撥號功能),無疑將會方便我們的軟件用戶(不用再切換應用程序,運行撥號網
絡),提高我們的軟件的友好性從而提高軟件的競爭力.
  在WIN9X下,如果安裝了撥號網絡,則在WINDOWS系統的系統目錄System下將有兩個撥號網絡管理程序庫
RasApi32.DLL和RasApi16.DLL,我們可利用其中的函數來獲取和設置撥號連接網絡的信息。在Delphi幫助
文件中,有相關函數的說明。

  在此,我們要討論的管理項目有:
    1、獲取當前系統中可用的撥號連接名稱
    2、新建撥號連接、修改撥號連接的屬性
    3、獲取和設置撥號連接的撥號參數
    4、用指定的撥號連接撥號、掛斷指定的撥號連接
    5、獲取當前活動的連接及其連接狀態

一、獲取當前系統中可用的撥號連接名稱
  即獲取系統中已建立的撥號連接的名稱,可用來讓用戶選擇使用哪個撥號連接進行撥號.
  可以用兩種方法來實現.一種是利用RasAPI函數;另一種是不用RasAPI函數,直接在注冊表中查詢.

  1、不用RasAPI函數,直接在注冊表中查詢
    在注冊表的HKEY_USERS\.Default\RemoteAccess\Addresses下,列出了已經在撥號網絡中建立
  了的撥號連接的名稱及其屬性設置,其中各項目的名稱即為可用的撥號連接的名稱;各項目的值即
  為各撥號連接的屬性設置,不過是二進制串,筆者還看不懂.由此可見,我們只要讀出各項目的名
  稱即可獲取當前系統中可用的撥號連接名稱.
var
registryTemp : TRegistry;
stringsTemp : TStringlist;
begin
registryTemp := TRegistry.Create;
stringsTemp := TStringlist.Create;
with registryTemp do
begin
RootKey := HKEY_USERS;//根鍵設置為HKEY_USERS
//如果存在子鍵.Default\RemoteAccess\Addresses
if OpenKey('.Default\RemoteAccess\Addresses',false) then
GetValueNames( stringsTemp );//讀出各項目的名稱,即撥號連接名稱
end;
combobox1.Items.assign( stringsTemp );//顯示,供選擇
end;

  2、用RasAPI函數
RasAPI函數RasEnumEntries可獲取當前系統中可用的撥號連接名稱.其函數原型為
function RasEnumEntries(
reserved : PChar;//保留字段,必須為NIL
lpszPhonebook : PChar;//電話本名稱,在Win9X下無作用,可為空字符串
lprasentryname : LPRASENTRYNAME;//接收撥號連接名稱的緩沖區,是一個RASENTRYNAME類型數組的指針
var lpcb : DWORD;//接收撥號連接名稱的緩沖區的大小(Bytes)
var lpcEntries: DWORD//實際獲得的撥號連接名稱的數目
) : DWORD; stdcall;
function RasEnumEntries;external RasApiDll name 'RasEnumEntriesA';

參數lprasentryname提供了一個RASENTRYNAME類型數組的指針,指向一個接收撥號連接名稱的緩沖
  區,其中RASENTRYNAME及LPRASENTRYNAME的類型說明如下:

LPRASENTRYNAME = ^RASENTRYNAME;
RASENTRYNAME = record
dwSize : DWORD;//該結構所占內存的大小(Bytes),一般設置為SizeOf(RASENTRYNAME)
szEntryName : array [ 0..RAS_MaxEntryName ] of char;//撥號連接名稱
end;
    lpcb為緩沖區的大小,一般設置為dwSize的倍數,倍數為可能有的連接的個數.
    lpcEntries實際的連接的個數.

    下面是一個應用例子,列出了當前系統中可用的撥號連接名稱.
注意,應在RASENTRYNAME緩沖區的第一個RASENTRYNAME結構中設置dwSize.
const
MaxPhoneEntries = 10;//最多的撥號連接數目
var
intIndex : integer;
PhoneEntries : array[ 0..MaxPhoneEntries - 1 ] of RASEntryName;
dwSize, dwEntries, dwResult : DWORD;
begin
//在RASENTRYNAME緩沖區的第一個RASENTRYNAME結構中設置dwSize
PhoneEntries[ 0 ].dwSize := sizeof( RASEntryName );

dwSize := MaxPhoneEntries * sizeof( RASEntryName );//為緩沖區的大小
//調用RasAPI函數,獲取當前系統中可用的撥號連接名稱
dwResult := RasEnumEntries ( NIL,'',@PhoneEntries[ 0 ],dwSize, dwEntries );

if dwResult <> 0 then
begin//RasAPI函數,執行錯誤
memo1.lines.add('RasEnumEntries錯誤:' + GetRasError( dwResult ));
exit;
end;

//顯示當前系統中可用的撥號連接名稱
memo1.lines.add('共有' + inttostr( dwEntries ) + '個RAS連接,如下所示');
for intIndex := 0 to dwEntries -1 do
memo1.lines.add( strpas( PhoneEntries[ intIndex ].szEntryName ) );
end;

  3、獲取默認的撥號連接的名稱
    默認的撥號連接,即用戶在瀏覽器中設置的撥號連接,該連接可以認為是用戶最常用
  的撥號連接.
    在注冊表的HKEY_USERS\.Default\RemoteAccess位置,有一個字符串名Profile,它對應
  字符值即為HKEY_USERS\.Default\RemoteAccess\Addresses.

二、新建撥號連接、修改撥號連接的屬性
  RasAPI函數RasCreatePhonebookEntry、RasEditPhonebookEntry通過調用Win9X的
新建撥號連接、修改撥號連接的設置界面,允許用戶新建撥號連接、修改撥號連接,具體
的設置操作還要由系統來完成.
  1、新建撥號連接
    新建撥號連接的RasAPI函數為RasCreatePhonebookEntry,其函數原型為:
function RasCreatePhonebookEntry(
hwnd : THandle; //新建撥號連接窗口的父窗口的句柄,為NIL表示桌面(DeskTop)
lpszPhonebook: pchar//電話本名稱,在Win9X下無作用,可為空字符串
) : DWORD;stdcall;
function RasCreatePhonebookEntry;external RasApiDll name 'RasCreatePhonebookEntryA';

    函數返回值為0表示執行成功;否則為錯誤代碼.

    下面是一個應用例子,允許用戶新建一個撥號連接.
var
dwResult : DWORD;
begin
//在當前窗口中新建撥號連接
dwResult := RasCreatePhonebookEntry( handle, '' );
if dwResult = 0 then
memo1.lines.add('新建撥號連接成功!')
else
memo1.lines.add('新建撥號連接失敗:!' + GetRasError( dwResult ))
end;

  2、修改撥號連接的屬性
    修改撥號連接的屬性的RasAPI函數為RasEditPhonebookEntry,其函數原型為:
function RasEditPhonebookEntry(
hwnd : THandle; //新建撥號連接窗口的父窗口的句柄,為NIL表示桌面(DeskTop)
lpszPhonebook: pchar;//電話本名稱,在Win9X下無作用,可為空字符串
lpszEntryName: pchar//撥號連接的名稱,如'163'、'169'等
) : DWORD; stdcall;
function RasEditPhonebookEntry;external RasApiDll name 'RasEditPhonebookEntryA';

    函數返回值為0表示執行成功;否則為錯誤代碼.
    下面是一個應用例子,允許用戶修改指定撥號連接的屬性.
var
dwResult : DWORD;
begin
//在當前窗口中修改撥號連接的屬性
dwResult := RasEditPhonebookEntry( handle, '', '163' );
if dwResult = 0 then
memo1.lines.add('修改撥號連接成功!')
else
memo1.lines.add('修改撥號連接失敗:!' + GetRasError( dwResult ))
end;

三、獲取和設置撥號連接的撥號參數
  用RasAPI函數RasGetEntryDialParams、RasSetEntryDialParams可以直接獲取和設置指定撥號連接的
撥號參數,其中包括用戶名稱和用戶密碼!
  1、獲取撥號連接的撥號參數
    獲取撥號連接的撥號參數RasAPI函數為RasGetEntryDialParams,其函數原型為:
function RasGetEntryDialParams(
lpszPhonebook: pchar;//電話本名稱,在Win9X下無作用,可為空字符串
pRASDIALPARAMS:LPRASDIALPARAMS;//撥號參數,是一個RASDIALPARAMS類型的指針
var lpfPassword : WordBool//是否需要用戶密碼
) : DWORD; stdcall;
function RasGetEntryDialParams;external RasApiDll name 'RasGetEntryDialParamsA';

參數pRASDIALPARAMS是一個RASDIALPARAMS類型的指針,指向一個撥號連接的撥號參數數據
的緩沖區,其中RASDIALPARAMS及LPRASDIALPARAMS的類型說明如下:
LPRASDIALPARAMS = ^RASDIALPARAMS;
RASDIALPARAMS = record
dwSize : DWORD;//該結構所占內存的大小(Bytes),一般設置為SizeOf(RASDIALPARAMS)
szEntryName : array[0..RAS_MaxEntryName] of char;//撥號連接名稱
szPhoneNumber : array[0..RAS_MaxPhoneNumber] of char;//撥號號碼
szCallbackNumber : array[0..RAS_MaxCallbackNumber] of char;//回叫號碼
szUserName : array[0..UNLEN] of char;//用戶名稱
szPassword : array[0..PWLEN] of char;//用戶密碼
szDomain : array[0..DNLEN] of char;//域名
end;
    函數返回值為0表示執行成功;否則為錯誤代碼.
    下面是一個應用例子,獲取指定撥號連接的撥號參數.
var
dwResult : DWORD;
RASDIALPARAMSData : RASDIALPARAMS;
NeedPWD : WordBool;
begin
//指定撥號連接的名稱
with RASDIALPARAMSData do
begin
dwSize := sizeof( RASDIALPARAMS );//結構大小
szEntryName := '163';//指定撥號連接的名稱
szUserName := '';//其它五個參數初始化
szPassword := '';
szDomain := '';
szCallbackNumber := '';
szPhoneNumber := '';
end;
NeedPWD := true;//需要用戶密碼

//獲取指定撥號連接的撥號參數
dwResult := RasGetEntryDialParams( '',@RASDIALPARAMSData,NeedPWD );

if dwResult <> 0 then //獲取指定撥號連接的撥號參數失敗
memo1.lines.add( '獲取'+StrPAS(RASDIALPARAMSData.szEntryName )+'撥號參數失敗:' 
+ GetRasError( dwResult ))
else
begin//顯示指定撥號連接的撥號參數
memo1.lines.add( StrPAS(RASDIALPARAMSData.szEntryName )+'撥號參數如下');
memo1.lines.add( '用戶名稱:' + StrPAS(RASDIALPARAMSData.szUserName ));
memo1.lines.add( '用戶密碼:' + StrPAS(RASDIALPARAMSData.szPassword ));
memo1.lines.add( '域 名:' + StrPAS(RASDIALPARAMSData.szDomain ));
memo1.lines.add( '回叫號碼:' + StrPAS(RASDIALPARAMSData.szCallbackNumber ));
memo1.lines.add( '撥號號碼:' + StrPAS(RASDIALPARAMSData.szPhoneNumber ));
end;
end;
  2、設置撥號連接的撥號參數
    設置撥號連接的撥號參數RasAPI函數為RasSetEntryDialParams,其函數原型為:
function RasSetEntryDialParams(
lpszPhonebook: pchar;//電話本名稱,在Win9X下無作用,可為空字符串
pRASDIALPARAMS:LPRASDIALPARAMS;//撥號參數,是一個RASDIALPARAMS類型的指針
var lpfPassword : WordBool//是否刪除用戶密碼
) : DWORD; stdcall;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美午夜一区二区| 色吧成人激情小说| 久久99蜜桃精品| 性久久久久久久久久久久| 亚洲自拍偷拍综合| 亚洲狠狠爱一区二区三区| 亚洲香肠在线观看| 午夜久久福利影院| 玖玖九九国产精品| 国产一二三精品| 成人成人成人在线视频| 色噜噜狠狠色综合欧洲selulu| 在线影视一区二区三区| 欧美人与禽zozo性伦| 欧美一级午夜免费电影| 精品国产91洋老外米糕| 久久久久久久综合色一本| 国产精品你懂的| 亚洲一区二区中文在线| 日本vs亚洲vs韩国一区三区二区| 久久精品免费看| 成人h版在线观看| 欧美在线免费播放| 久久众筹精品私拍模特| 亚洲视频在线观看一区| 男人操女人的视频在线观看欧美| 国内精品视频一区二区三区八戒| 91在线视频免费91| 911精品国产一区二区在线| 久久久www成人免费无遮挡大片| 亚洲欧洲韩国日本视频| 亚洲国产精品久久人人爱蜜臀 | 欧美色中文字幕| 欧美一区日韩一区| 1区2区3区欧美| 欧美a级理论片| av一区二区不卡| 日韩欧美一区二区久久婷婷| 国产精品国产三级国产aⅴ中文| 日韩精品久久理论片| www.欧美日韩国产在线| 欧美成人高清电影在线| 曰韩精品一区二区| 国产一区二区0| 91精品国产入口| 亚洲精品一二三| 懂色av一区二区三区免费看| 6080国产精品一区二区| 亚洲精品视频在线观看网站| 成人黄色大片在线观看| 精品嫩草影院久久| 亚洲1区2区3区视频| 99国产欧美另类久久久精品| 欧美videos大乳护士334| 一区二区三区成人| 波多野结衣在线aⅴ中文字幕不卡| 日韩一级片网址| 午夜免费久久看| 欧美日韩午夜影院| 亚洲午夜久久久| 在线视频国内自拍亚洲视频| 欧美国产乱子伦| 国产高清不卡二三区| 国产亚洲自拍一区| 国产精品1区2区| 精品国产99国产精品| 韩国一区二区视频| 久久精品在线观看| 国产成人av资源| 国产日韩欧美a| 国产成人免费在线观看不卡| 欧美大片一区二区| 国内外成人在线| 国产欧美一区在线| 成人午夜av电影| 国产精品人人做人人爽人人添| 成人一区二区三区在线观看 | 亚洲欧洲综合另类在线| 9l国产精品久久久久麻豆| 国产精品蜜臀av| 91啪在线观看| 亚洲成人免费在线| 欧美一级在线免费| 国产精品自在欧美一区| 欧美韩国日本不卡| 97aⅴ精品视频一二三区| 一区二区三区影院| 欧美日韩国产高清一区二区| 日本大胆欧美人术艺术动态 | 在线观看日韩精品| 天天色 色综合| 精品国产乱码久久久久久浪潮 | 日韩精品一区二区三区在线观看| 青青草国产成人99久久| 久久久久久久久久久电影| 成人激情免费电影网址| 亚洲精品乱码久久久久| 在线不卡中文字幕| 国产成人综合亚洲91猫咪| 国产精品久久久久久久久久久免费看| 91久久免费观看| 麻豆精品视频在线| 国产精品国产成人国产三级| 色吧成人激情小说| 免费欧美日韩国产三级电影| 国产日韩欧美精品一区| 欧美日韩国产综合草草| 国产成人精品一区二 | 久久综合资源网| 日本精品视频一区二区三区| 青青草伊人久久| 国产精品夫妻自拍| 日韩女同互慰一区二区| av成人动漫在线观看| 免费成人你懂的| 亚洲视频在线观看三级| 欧美r级电影在线观看| 色屁屁一区二区| 国产夫妻精品视频| 午夜精品成人在线| 中文成人综合网| 精品剧情在线观看| 日本道色综合久久| 国产成人av一区二区三区在线观看| 亚洲图片有声小说| 亚洲私人黄色宅男| 国产蜜臀av在线一区二区三区| 欧美日韩另类一区| 91蜜桃网址入口| 国产成+人+日韩+欧美+亚洲| 免费日本视频一区| 五月天网站亚洲| 一区二区三区在线观看国产 | 色婷婷综合久色| 国产成人免费高清| 老司机免费视频一区二区三区| 亚洲一区二区视频在线观看| 亚洲欧洲国产日韩| 亚洲欧美怡红院| 国产精品福利影院| 中文av字幕一区| 国产精品色一区二区三区| 久久免费偷拍视频| 久久久久97国产精华液好用吗| 日韩一级二级三级| 欧美电影免费提供在线观看| 欧美日韩电影在线播放| 欧美综合一区二区三区| 91麻豆国产精品久久| www.爱久久.com| 不卡一二三区首页| 97久久超碰国产精品电影| 99久久精品国产网站| 99re成人在线| 91黄色激情网站| 欧美日韩免费高清一区色橹橹| 欧美性xxxxxx少妇| 91国偷自产一区二区三区观看| 99视频精品免费视频| 色综合中文综合网| 日韩一区二区视频| 2021久久国产精品不只是精品| 欧美va在线播放| 精品国产精品一区二区夜夜嗨| 日韩欧美一二三四区| 精品久久久久久亚洲综合网| 久久免费看少妇高潮| 国产精品天干天干在观线| 国产精品美女久久久久aⅴ国产馆| 中文字幕制服丝袜成人av| 一区二区三区欧美视频| 日韩成人免费看| 精品一区二区三区免费| jizzjizzjizz欧美| 欧美性猛片aaaaaaa做受| 日韩午夜精品电影| 亚洲国产精品黑人久久久| 亚洲女人小视频在线观看| 婷婷国产在线综合| 国产精品77777竹菊影视小说| 99久久综合色| 欧美日韩国产综合久久| 久久精品亚洲精品国产欧美kt∨ | 欧美国产一区视频在线观看| 一区二区在线免费| 蓝色福利精品导航| 成人av资源站| 91精品国产综合久久久久久| 国产片一区二区三区| 性感美女久久精品| 成人午夜激情影院| 欧美一级艳片视频免费观看| 国产精品天干天干在观线| 亚洲不卡在线观看| 成人看片黄a免费看在线| 欧美精品第1页| 国产精品乱码一区二三区小蝌蚪| 亚洲一二三区不卡| 成人一区在线看| 精品噜噜噜噜久久久久久久久试看|