通俗基础教程
电脑操作教程
电脑怎样拨号上网
如何做个人网页
怎样做局域网
Word教程(文字处理)
图形图象处理入门
经典提高教程
怎样使用代理服务器
如何做无盘工作站
Photoshop教程
Dreamweaver3教程
Flash4&5教程
Firework3教程
Frontpage2000教程
Authware教程
Office2000教程
如何制作动画图片
OICQ&ICQ使用方法

高手学习指南

硬件升级技巧
CGI教程
ASP教程

PHP教程

注册表使用技巧
路由器的设置
网站建设指南
SQL
更新日期: 2000-07-31
Windows3x如何拨号上网
相关内容

在Delphi 程 序 中 拨 号 上 网
教程打包下载

在Delphi 程 序 中 拨 号 上 网
深 圳 华 讯 通 信 公 司(518040) 王 发 军


  在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\.Default\RemoteAccess\Addresses 下, 列 出 了 已 经 在 拨 号 网 络 中 建 立 了 的 拨 号 连 接 的 名 称 及 其 属 性 设 置, 其 中 各 项 目 的 名 称 即 为 可 用 的 拨 号 连 接 的 名 称; 各 项 目 的 值 即 为 各 拨 号 连 接 的 属 性 设 置。 我 们 只 要 读 出 各 项 目 的 名 称 即 可 获 取 当 前 系 统 中 可 用 的 拨 号 连 接 名 称。
  如 果 在Internet Explorer 中 设 置 了 默 认 连 接 名 称( 查 看=》Internet 选 项=》 连 接=》 连 接=》 设 置=》 使 用 以 下 拨 号 网 络 连 接), 则 在 注 册 表 的HKEY_USERS\.Default\RemoteAccess 下, 有 一 个 字 符 串 类 型 的 键 值, 键 值 名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 // 如 果 存 在 子 键.Default\RemoteAccess\Addresses if OpenKey('.Default\RemoteAccess\Addresses',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('.Default\RemoteAccess',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 下 调 试 通 过。

拨号网络设置
Window用户如何拨号上网
Window用户如何拨号上网二设置拨号上网
Window用户如何拨号上网三协议和连接属性
Window用户如何拨号上网四创建拨号网络属性
Window用户如何拨号上网五设置拨号网络属性
安装Modem之拨号上网篇
Windows 3x如何拨号上网
在Delphi程序中拨号上网
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
教程站
收集整理
服务大家