⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 宽带的连接和中断源码 很好很强大很好很强大
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, RasApi;

type
  TForm1 = class(TForm)
    NameE: TEdit;
    lbl1: TLabel;
    PswE: TEdit;
    lbl2: TLabel;
    btn1: TButton;
    btn2: TButton;
    edt1: TEdit;
    procedure btn2Click(Sender: TObject);
    procedure btn1Click(Sender: TObject);
  private
    { Private declarations }
    function GetEntriesName: string;

  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

function TForm1.GetEntriesName: string;
var
  i: integer;
  EntriesName: array[1..10] of TRASEntryName;
  dwSize, dwEntries, dwResult: DWORD;
begin
  Result := '';
  EntriesName[1].dwSize := SizeOf(TRASEntryName);
  dwSize := 10 * sizeof(TRASEntryName);
  dwResult := RasEnumEntries(nil, nil, @EntriesName[1], dwSize, dwEntries);
  if dwEntries = 0 then
    Exit;
  for i := 1 to dwEntries do
    Result := result + entriesname[i].szEntryName + '|';
end;

procedure TForm1.btn2Click(Sender: TObject);
var
  bufsize: Cardinal;
  numEntries: Cardinal;
  entries: array[1..10] of TRasConn;
  stat: TRasConnStatus;
  hRas: HRasConn;
  conexion: pRasConn;
begin
  entries[1].dwSize := SizeOf(TRasConn);
  bufsize := SizeOf(TRasConn) * 10;
  FillChar(stat, Sizeof(TRasConnStatus), 0);
  stat.dwSize := Sizeof(TRasConnStatus);
  if RasEnumConnections(@entries[1], bufsize,
    numEntries) = 0 then
  begin
    if numEntries > 0 then
      with entries[1] do
      begin
        conexion := Pointer(rasconn);
        hRas := Longint(conexion);
        if RasHangUp(hRas) <> 0 then
          ShowMessage('Error HangUp')
        else
          ShowMessage('HangUp Success');
      end

    else
      ShowMessage('No active connection detect!');
  end;
end;

procedure TForm1.btn1Click(Sender: TObject);
var
  EntriesList: TStringList;
  i: Integer;
  Params: array of TRASDialParams;
  NeedPWD: LongBool;
  Conned: DWORD;
  dwResult: DWORD;
begin
  needPWD := True;
  EntriesList := TStringList.Create;
  EntriesList.Clear;
  EntriesList.Delimiter := '|';
  EntriesList.DelimitedText := GetEntriesName;
//  ShowMessage(GetEntriesName);
edt1.Text := GetEntriesName ;
  SetLength(params, 0);
  for i := 0 to EntriesList.Count - 1 do
  begin
    if Trim(EntriesList.Strings[i]) <> '' then
    begin
      SetLength(params, Length(params) + 1);
      params[i].dwSize := SizeOf(Trasdialparams);
      CopyMemory(@params[i].szEntryName[0], PChar(EntriesList.Strings[i]), Length(EntriesList.Strings[i]));
      RasGetEntryDialParams(nil, params[i], needPWD);
    end;
  end;
  for i := 0 to Length(params) - 1 do
  begin
    dwResult := RasDial(nil, nil, @params[i], 0, 0, Conned);
    ShowMessage(IntToStr(dwResult)); //返回连接结果
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -