CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  网络通信/分布式开发

谁有ras.dcu?给我一个谢谢!

楼主ilikenba()2004-10-03 14:26:23 在 Delphi / 网络通信/分布式开发 提问

我在网上找到了一个调用拨号网络的程序!可是里面包含了ras包,我不知道这个包是哪里的!  
  谁有给我发一个ilikenba@263.net  
  unit   Unit13;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  
      Dialogs,IniFiles,   ExtCtrls,Ras,ShellApi,   StdCtrls;  
   
  type  
      TDialer   =   class(TForm)  
          Button1:   TButton;  
      private  
          {   Private   declarations   }  
      public  
          function   Dial(EntryName,   UserName,   Password   :   String):Boolean;  
          //自动拨号  
          function   AutoDial   :   Boolean;  
          //修改拨号网络属性  
          function   DoProperties(AHandle:THandle;EntriesName   :   string)   :   Boolean;  
          //新建拨号网络  
          function   NewConnection(AHandle:THandle)   :   Boolean;  
          //获取网络电话本  
          function   LoadPhoneBook   :   Boolean;  
          //断开连接  
          procedure   Disconnected;  
        //获得调制解调器信息  
          function   GetModemInfo   :   Boolean;  
          {   Public   declarations   }  
      end;  
   
  var  
      Dialer:   TDialer;  
   
  implementation  
   
  {$R   *.dfm}  
  function   RasGetErrorStringA:   DWORD;external   'RasApi32.dll';  
  function   TDialer.Dial(EntryName,   UserName,   Password   :   String):Boolean;  
  var  
      rdParams   :   TRASDIALPARAMS;  
      dwRet         :   DWORD;  
      Buf             :   array   [0..255]   of   Char;  
  begin  
      Result   :=   false;  
      //   setup   RAS   Dial   Parameters  
      FillChar(rdParams,   SizeOf(rdParams),   0);  
      rdParams.dwSize                             :=   SizeOf(TRASDIALPARAMS);  
      strCopy(rdParams.szUserName,     PChar(UserName));  
      strCopy(rdParams.szPassword,     PChar(Password));  
      strCopy(rdParams.szEntryName,   PChar(EntryName));  
      rdParams.szPhoneNumber[0]         :=   #0;  
      rdParams.szCallbackNumber[0]   :=   '*';  
      rdParams.szDomain                         :=   '*';  
   
      //g_hWnd   :=   Handle;  
      hRasConn   :=   0;;  
      dwRet     :=   RasDialA(nil,   nil,   @rdParams,   0,   nil,   @hRasConn);  
      if   dwRet   <>   0   then  
      begin  
          RasGetErrorStringA(dwRet,   @Buf[0],   SizeOf(Buf));  
          exit;  
          //Disconnected;  
      end;  
      result:=true;  
  end;  
   
  //断开连接  
  procedure   TDialer.Disconnected;  
  begin  
      if   hRasConn   <>   0   then  
          begin  
              RasHangUpA(hRasConn);  
              hRasConn   :=   0;  
          end;  
  end;  
   
  //程序启动自动拨号  
  function   TDialer.AutoDial   :   Boolean;  
  var  
      IniFile   :   TIniFile;  
      aEntryName   :   String;  
      aUserName   :   String;  
      aPassword   :   String;  
      EntryName   :   string;  
      UserName   :   string;  
      FIniFileName   :   String;  
      rdParams   :   TRASDIALPARAMS;  
      dwRet         :   DWORD;  
      Buf             :   array   [0..255]   of   Char;  
  begin  
      Result   :=   False;  
      FIniFileName   :=   Copy(Application.ExeName,   1,  
                                                    Length(Application.ExeName)   -   3)   +   'ini';  
      IniFile   :=   TIniFile.Create(FIniFileName);  
      try  
          aEntryName   :=   IniFile.ReadString('Last',   'EntryName',   '');  
          aUserName     :=   IniFile.ReadString('Last',   'UserName',   '');  
          EntryName     :=   CrunchName(Trim(aEntryName));  
          UserName       :=   CrunchName(Trim(aUserName));  
          aPassword     :=   IniFile.ReadString('RAS_ENTRY_'   +   EntryName,  
                                                                              'USER_'   +   UserName,   '*');  
      finally  
          IniFile.Free;  
      end;  
      //Result   :=   Dial(aEntryName,aUserName,aPassword);  
      FillChar(rdParams,   SizeOf(rdParams),   0);  
      rdParams.dwSize                             :=   SizeOf(TRASDIALPARAMS);  
      strCopy(rdParams.szUserName,     PChar(aUserName));  
      strCopy(rdParams.szPassword,     PChar(aPassword));  
      strCopy(rdParams.szEntryName,   PChar(aEntryName));  
      rdParams.szPhoneNumber[0]         :=   #0;  
      rdParams.szCallbackNumber[0]   :=   '*';  
      rdParams.szDomain                         :=   '*';  
      //g_hWnd   :=   Handle;  
      hRasConn   :=   0;;  
      dwRet     :=   RasDialA(nil,   nil,   @rdParams,   0,   nil,   @hRasConn);  
      if   dwRet   <>   0   then  
      begin  
          RasGetErrorStringA(dwRet,   @Buf[0],   SizeOf(Buf));  
          exit;  
              //Disconnected;  
      end;  
      Result   :=   True;  
  end;  
   
  //读取拨号网络电话本  
  function   TDialer.LoadPhoneBook   :   Boolean;  
  var  
      Entries     :   array   [0..15]   of   TRASENTRYNAME;  
      cb               :   DWORD;  
      cEntries   :   DWORD;  
      dwRet         :   DWORD;  
      Buf             :   array   [0..127]   of   char;  
      I                 :   Integer;  
  begin  
      Result   :=   False;  
      setlength(PhoneBookName,20);  
      FillChar(Entries,   SizeOf(Entries),   0);  
      Entries[0].dwSize   :=   SizeOf(TRASENTRYNAME);  
      cb   :=   SizeOf(Entries);  
      cEntries   :=   0;  
      dwRet   :=   RasEnumEntriesA(NIL,   NIL,   @Entries[0],   @cb,   @cEntries);  
      if   dwRet   <>   0   then  
          begin  
              RasGetErrorStringA(dwRet,   @Buf[0],   SizeOf(Buf));  
              exit;         //LogMessage(Buf);  
          end  
      else  
      begin  
          Result   :=   True;  
          PhoneBookNumber   :=   cEntries;  
          for   I   :=   0   to   cEntries   -   1   do  
              PhoneBookName[I]   :=   Entries[I].szEntryName;  
      end;  
  end;  
   
  unction   TDialer.GetPhoneName   :   string;  
  var  
      I   :   Integer;  
  begin  
      LoadPhoneBook;  
      Result:='';  
      for   I   :=   0   to   PhoneBookNumber   -1   do  
          Result   :=   Result+PhoneBookName[I]   +   ',';  
  end;  
   
  //建立新的拨号网络连接  
  function   TDialer.NewConnection(AHandle:THandle)   :   Boolean;  
  var  
      dwRet             :   DWORD;  
      Buf                 :   Array   [0..127]   of   char;  
  begin  
      Result   :=   False;  
      //dwRet   :=   RasCreatePhonebookEntryA(NewForm.Handle,nil);  
      dwRet   :=   RasCreatePhonebookEntryA(AHandle,nil);  
      LoadPhoneBook;  
      if   dwRet   <>   0   then  
      begin  
          RasGetErrorStringA(dwRet,   @Buf[0],   SizeOf(Buf));  
          exit;  
          //LogMessage(Buf);  
      end;  
      Result   :=   True;  
  end;  
  //编辑修改拨号网络属性  
  //function   DoProperties(NewForm   :   TForm;   EntriesName   :   String)   :   Boolean;  
  function   TDialer.DoProperties(AHandle:THandle;EntriesName   :   string)   :   Boolean;  
  var  
      dwRet   :   DWORD;  
      Buf       :   Array   [0..127]   of   char;  
  begin  
      Result   :=   False;  
      //dwRet   :=   RasEditPhonebookEntryA(NewForm   ,   nil,   PChar(EntriesName));  
      dwRet   :=   RasEditPhonebookEntryA(AHandle,   nil,   PChar(EntriesName));  
      if   dwRet   <>   0   then  
          begin  
              RasGetErrorStringA(dwRet,   @Buf[0],   SizeOf(Buf));  
              //LogMessage(Buf);  
          end  
      else  
          Result   :=   True;  
  end;  
  //获得调制解调器信息  
  function   TDialer.GetModemInfo   :   Boolean;  
  var  
      dwRet   :   DWORD;  
      RasConn   :   array[0..15]   of   TRASCONN;  
      cb   :   DWORD;  
      cConnection   :   DWORD;  
      Buf             :   array   [0..127]   of   char;  
      I                 :   Integer;  
  begin  
      Result   :=   True;  
      SetLength(DeviceName,20);  
      SetLength(DeviceType,20);  
      FillChar(RasConn,   SizeOf(RasConn),   0);  
      RasConn[0].dwSize   :=   SizeOf(TRASCONN);  
      cb   :=Sizeof(RasConn);  
      cConnection   :=   0;  
      dwRet   :=   RasEnumConnectionsA(@RasConn,@cb,@cConnection);  
      if   dwRet<>0   then  
          begin  
              RasGetErrorStringA(dwRet,   @Buf[0],   SizeOf(Buf));  
              Result   :=   False;  
          //LogMessage(Buf);  
          end;  
      DeviceNumber   :=   cConnection;  
      for   I:=0   to   cConnection-1   do  
          begin  
              DeviceType[I]:=   RasConn[I].szDeviceType;  
              DeviceName[I]:=   RasConn[I].szDeviceName;  
          end;  
  end;  
   
  end. 问题点数:0、回复次数:2Top

1 楼ilikenba()回复于 2004-10-03 15:09:00 得分 0

如果连接RasAPI32.dll动态库的时候,TRASDIALPARAMS这个结构我不知道该怎样导入!高手指点呀!Top

2 楼welllove88(寒林)回复于 2004-10-08 16:43:15 得分 0

没有听过~~Top

相关问题

  • 多谢shclhs(龙海神) 给我RAS IP程序...给你100分.
  • 谁能给我讲讲RAS(Remote Access Service)?有文章,例子也一并列一下!
  • ###请教高手RAS配置问题(马上给分)###
  • 如何检测到远端有人与我建立RAS连接?
  • 我通过RAS访问DBF文件的问题。
  • 求救RAS!
  • RAS服务器
  • 关于dcu
  • 只差一点点。找不到原因。关于RAS拨号信息的问题。给200分。求朋友们帮帮我。在线等到。解决了马上给分。
  • 低级问题,我的程序无缘无故就找不到 .dcu文件

关键词

  • 连接
  • tdialer
  • dwret
  • rdparams
  • entryname
  • aentryname
  • loadphonebook
  • rasgeterrorstringa
  • centries
  • 拨号网络

得分解答快速导航

  • 帖主:ilikenba

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo