📄 unit1.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 + -