网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
用Delphi编写可以断开Internet连接的程序
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式

在WIN9X下,如果安装了拨号网络,则在WINDOWS的系统目录(System目录)下将有两个拨号网络管理程序库RasApi32.DLL 和RasApi16.DLL,因此我们可以利用RAS(远程访问服务)系列函数实现断开指定的拨号连接。在这里我们将使用RasHangUp函数。然而如何正确使用这些API函数是完成应用程序的关键。
  挂断拨号连接的RasApi32函数为RasHangUp,其函数原型为:
  RasHangUp(
    HRASCONN : DWORD
   ):DWORD;stdcall;
  参数说明:
  HRASCONN : DWORD要挂断的拨号连接的句柄,此句柄是来源由调用函数RasEnumConnections的返回值。
  返回值:函数的返回值为0表示执行成功;不为0执行失败。
  由上面的函数得知:我们必须首先获得拨号连接的句柄,因此在应用程序中还需使用RasEnumConnections函数。
  获取所有活动的拨号连接的信息列表(连接句柄和电话号码)的RasApi32函数为RasEnumConnections,其函数原型为:
  RasEnumConnections(LPRASCONN lprasconn,LPDWORD lpcb,LPDWORD lpcConnections) :DWORD;stdcall;
  参数说明:
  lprasconn:接收活动连接的缓冲区的指针;
  lpcb:接收缓冲区的字节大小;
  lpcConnections:实际的活动连接数。
  返回值函数的返回值为0表示执行成功;不为0执行失败。
  为了正确使用这两个函数,我们要事先定义函数,常数,结构类型及其他信息,有关这一部份的内容都写入rasapi.pas单元。
  源程序
  program main;

  uses

   Forms,
   Unit1 in ''Unit1.pas'' {Form1},
   rasapi in ''rasapi.pas'';

  {$R *.RES}

  begin
   Application.Initialize;
   Application.CreateForm(TForm1, Form1);
   Application.Run;
  end.

  unit Unit1;

  interface

  uses

   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
   StdCtrls, DdeMan;

  type

   TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
   private
    { Private declarations }
     public
    { Public declarations }
   end;

  var

   Form1: TForm1;

  implementation

   uses rasapi;

  {$R *.DFM}

  procedure TForm1.Button1Click(Sender: TObject);
  var
     bufsize: Cardinal;
     numEntries: Cardinal;
     x: Integer;
     entries: Array[1..10] of TRasConn;//拨号连接数组(假设最多有10个活动的拨号连接)
     stat: TRasConnStatus;
     hRas: HRasConn;
     conexion:pRasConn;
   begin
    entries.dwSize := SizeOf(TRasConn);
    bufsize := SizeOf(TRasConn) * 10;
    FillChar(stat, Sizeof(TRasConnStatus), 0);
    stat.dwSize := Sizeof(TRasConnStatus);
    if RasEnumConnections(@entries, bufsize, numEntries) = 0 then
     begin
      if numEntries > 0 then
       with entries do
       begin
        conexion:=Pointer(rasconn);
        hRas := Longint(conexion);
        if RasHangUp(hRas) <> 0 then
         ShowMessage(''断开失败'');
       end
       else
        ShowMessage(''断开成功'');
       end;
   end;

  unit rasapi;

  interface

   Uses WinTypes, WinProcs, Dialogs;

   Const

   UNLEN = 256;
   PWLEN = 256;
   DNLEN = 15;
   RAS_MaxEntryName   = 256;//连接名称最大长度
   RAS_MaxDeviceName   = 128;//设备名称最大长度
  
  • 下一篇资讯: 利用Delphi 5中调用Excel 97
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号