在應用程序中實現RAS撥號

發表于:2007-07-14來源:作者:點擊數: 標簽:
王 濤 ---- 遠 程 訪 問 服 務(RAS) 是Windows NT 操 作 系 統 提 供 的 系 統 服 務 之 一, 通 過 電 話 線 可 以 使 單 獨 的 計 算 機 接 入 網 絡, 或 通 過 兩 個RAS 對 撥 使 兩 個 局 域 網 互 連。 此 項 服 務 的 功 能 可 以 使 遠 程 的 計
王 濤

---- 遠 程 訪 問 服 務(RAS) 是Windows NT 操 作 系 統 提 供 的 系 統 服 務 之 一, 通 過 電 話 線 可 以 使 單 獨 的 計 算 機 接 入 網 絡, 或 通 過 兩 個RAS 對 撥 使 兩 個 局 域 網 互 連。 此 項 服 務 的 功 能 可 以 使 遠 程 的 計 算 機 端 點 以 較 低 的 費 用 同 網 絡 連 接。
---- 由 于Windows NT 操 作 系 統 的 大 量 使 用, 遠 程 訪 問 服 務 功 能 也 被 廣 泛 應 用, 在 許 多 具 體 的 應 用 程 序 中, 均 已 通 過 遠 程 訪 問 服 務 來 實 現 對 遠 程 的 資 源 共 享 等 功 能。 連 通 遠 程 訪 問 服 務, 只 要 從 遠 程 客 戶 機 撥 通 撥 號 網 絡 就 可 以 了, 執 行 掛 斷 就 結 束 連 接, 鼠 標 操 作Windows 95 中 的 撥 號 網 絡 可 以 直 接 撥 通 和 掛 斷。 但 有 些 時 候 我 們 希 望 在 應 用 程 序 中RAS 撥 號 和 掛 斷 對 用 戶 不 可 見, 那 么 就 需 要 相 應 的 程 序 控 制 來 實 現RAS 撥 通 和 掛 斷。

---- Windows 95 提 供 了API 函 數RasDial, 調 用 系 統 中 建 好 的 撥 號 網 絡 連 接, 完 成RAS 撥 號, 同 時 還 提 供 了API 函 數RasHangUp 斷 開 連 接。RasDial 的 原 形 如 下:

---- DWORD RasDial(LPRASDIALEXTENSIONS IpRasDialExtensions,LPTSTR IpszPhonebook,LPRASDIALPARAMS IpRasDialParams,DWORD dwNotifierType,LPVOID IpvNotifier,LPHRASCONN IphRasConn)

---- 此 函 數 的 第3 個 參 數 為 指 向RASDIALPARAMS 型 結 構 體 的 指 針, 它 提 供 了 配 置RAS 撥 號 的 參 數; 第5 個 參 數 為 撥 號 完 成 后 執 行 的 回 調 函 數; 第6 個 參 數 是LPHRASCONN 型 的 指 針, 撥 號 連 接 建 立 好 之 后 將 返 回 此 連 接 的 句 柄; 其 他3 個 參 數 為NULL 即 可。 函 數 調 用 如 果 成 功 將 返 回 零, 否 則 返 回 錯 誤 代 碼, 此 錯 誤 代 碼 的 含 義 可 以 在 頭 文 件Raserror.h 中 查 到。

---- RASDIALPARAMS 型 結 構 體 包 含7 個 數 據 成 員:dwSize、szEntryName、szPhoneNumber、szCallbackNumber、szUserName、szPassword 和szDomain, 它 們 的 作 用 如 右 表 所 示。

---- 要 掛 斷 已 撥 通 的 連 接 使 用RasHangUp 函 數, 需 要 的 參 數 是 此 連 接 的 連 接 句 柄。 下 面 介 紹 使 用VC 完 成RAS 撥 號 的 一 個 例 子, 其 中 我 們 假 設RAS 端NT 服 務 器 連 接 的 內 部 分 機 的 電 話 號 碼 是"22", 具 體 步 驟 如 下:

---- 1 . 配 置 好 調 制 解 調 器, 然 后 在Windows 95 的 撥 號 網 絡 中 建 立 一 個 名 為dial 的 連 接。

---- 2 . 建 立 一 個Visual C 的 應 用 框 架, 在Setting 中 為 應 用 程 序 加 入Rasapi32.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[0]='\0';
      strcpy(rdParams.szDomain,"dial");
      hRasConn=NULL;
    dwRet=RasDial(NULL,NULL,&rdParams,0L,
(RASDIALFUNC)RasDialFunc,&hRasConn);
      if(dwRet!=0){
        //deal with error …
      }
----
    5 . 在 此 響 應 函 數 之 前 加 入 如 下 代 碼:
VOID WINAPI RasDialFunc(UINT
unMsg,RASCONNSTATE rasconnstate,DWORD dwError)
      {
      }

---- 6 . 在 鼠 標 點 擊 掛 斷 按 鈕 的 響 應 函 數 中 加 入 如 下 代 碼:

      DWORD dwRet;
      dwRet= RasHangUp(hRasConn);

---- 7 . 最 后 編 譯 執 行 程 序。

---- RASDIALPARAMS 型 結 構 體 數 據 成 員 表 成 員 名 類 型 功 能
DwSize DWORD 結 構 體 的 大 小
SzEntryName TCHAR 數 組 調 用 的 撥 號 連 接 名 稱
SzPhoneNumber TCHAR 數 組 撥 打 的 電 話 號 碼
SzCallbackNumer TCHAR 數 組 要 求 回 撥 的 電 話 號 碼
SzUserName TCHAR 數 組 向RAS 登 錄 的 用 戶 名
SzPassord TCHAR 數 組 向RAS 登 錄 的 口 令
SzDomain  TCHAR 數 組 向RAS 登 錄 的 域

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97