unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const
MaxPhoneEntries = 10;//最多的拨号连接数目
RAS_MaxEntryName= 128;
const
MaxConnections = 10;
RAS_MaxDeviceType = 16;//设备类型名称长度RAS_MaxDeviceName = 128;//设备名称最大长度
RAS_MaxIpAddress = 15;//IP地址的最大长度
RASP_PppIp = $8021;//拨号连接的协议类型,该数值表示PPP连接type
HRASCONN = DWORD;//拨号连接句柄的类型
RASCONN = record//活动的拨号连接的句柄和设置信息
dwSize : DWORD;//该结构所占内存的大小(Bytes), hrasconn : HRASCONN;//活动连接的句柄
szEntryName : array[0..RAS_MaxEntryName] of char;
//活动连接的名称
szDeviceType : array[0..RAS_MaxDeviceType] of char;
//活动连接的所用的设备类型
szDeviceName : array[0..RAS_MaxDeviceName] of char;
//活动连接的所用的设备名称
end;
LPRASENTRYNAME = ^RASENTRYNAME;
RASENTRYNAME = record
dwSize : DWORD;
//该结构所占内存的大小(Bytes),
//一般设置为SizeOf(RASENTRYNAME)
szEntryName:array[0..RAS_MaxEntryName] of char;
//拨号连接名称
end;
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;function RasEnumEntries(
reserved: PChar;
lpszPhonebook:PChar;
lprasentryname: LPRASENTRYNAME;
var lpcb: DWORD;
var lpcEntries: DWORD): DWORD;stdcall;
function RasEnumEntries; external 'Rasapi32.dll' name 'RasEnumEntriesA';
var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
intIndex : integer;
PhoneEntries : array[ 0..MaxPhoneEntries - 1 ]
of RASEntryName;
dwSize,dwEntries,dwResult : DWORD;
begin
//在RASENTRYNAME缓冲区的
//第一个RASENTRYNAME结构中设置dwSize
PhoneEntries[ 0 ].dwSize := sizeof( RASEntryName ); dwSize:=MaxPhoneEntries*sizeof(RASEntryName);
//为缓冲区的大小 //调用RasAPI函数,获取当前系统中可用的拨号连接名称
dwResult := RasEnumEntries ( nil,'',
@PhoneEntries[ 0 ],dwSize, dwEntries ); if dwResult <> 0 then
begin//RasAPI函数,执行错误
memo1.lines.add('RasEnumEntries错误:' +
inttostr( dwResult) );
exit;
end; //显示当前系统中可用的拨号连接名称
memo1.lines.add('共有' +
inttostr( dwEntries ) + '个RAS连接,如下所示');
for intIndex := 0 to dwEntries -1 do
memo1.lines.add(strpas(
PhoneEntries[ intIndex ].szEntryName ) );
end;end.
运行后得不到名称提示632错误!
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const
MaxPhoneEntries = 10;//最多的拨号连接数目
RAS_MaxEntryName= 128;
const
MaxConnections = 10;
RAS_MaxDeviceType = 16;//设备类型名称长度RAS_MaxDeviceName = 128;//设备名称最大长度
RAS_MaxIpAddress = 15;//IP地址的最大长度
RASP_PppIp = $8021;//拨号连接的协议类型,该数值表示PPP连接type
HRASCONN = DWORD;//拨号连接句柄的类型
RASCONN = record//活动的拨号连接的句柄和设置信息
dwSize : DWORD;//该结构所占内存的大小(Bytes), hrasconn : HRASCONN;//活动连接的句柄
szEntryName : array[0..RAS_MaxEntryName] of char;
//活动连接的名称
szDeviceType : array[0..RAS_MaxDeviceType] of char;
//活动连接的所用的设备类型
szDeviceName : array[0..RAS_MaxDeviceName] of char;
//活动连接的所用的设备名称
end;
LPRASENTRYNAME = ^RASENTRYNAME;
RASENTRYNAME = record
dwSize : DWORD;
//该结构所占内存的大小(Bytes),
//一般设置为SizeOf(RASENTRYNAME)
szEntryName:array[0..RAS_MaxEntryName] of char;
//拨号连接名称
end;
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;function RasEnumEntries(
reserved: PChar;
lpszPhonebook:PChar;
lprasentryname: LPRASENTRYNAME;
var lpcb: DWORD;
var lpcEntries: DWORD): DWORD;stdcall;
function RasEnumEntries; external 'Rasapi32.dll' name 'RasEnumEntriesA';
var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
intIndex : integer;
PhoneEntries : array[ 0..MaxPhoneEntries - 1 ]
of RASEntryName;
dwSize,dwEntries,dwResult : DWORD;
begin
//在RASENTRYNAME缓冲区的
//第一个RASENTRYNAME结构中设置dwSize
PhoneEntries[ 0 ].dwSize := sizeof( RASEntryName ); dwSize:=MaxPhoneEntries*sizeof(RASEntryName);
//为缓冲区的大小 //调用RasAPI函数,获取当前系统中可用的拨号连接名称
dwResult := RasEnumEntries ( nil,'',
@PhoneEntries[ 0 ],dwSize, dwEntries ); if dwResult <> 0 then
begin//RasAPI函数,执行错误
memo1.lines.add('RasEnumEntries错误:' +
inttostr( dwResult) );
exit;
end; //显示当前系统中可用的拨号连接名称
memo1.lines.add('共有' +
inttostr( dwEntries ) + '个RAS连接,如下所示');
for intIndex := 0 to dwEntries -1 do
memo1.lines.add(strpas(
PhoneEntries[ intIndex ].szEntryName ) );
end;end.
运行后得不到名称提示632错误!
RASBASE = 600;
ERROR_INVALID_SIZE = RASBASE+32; // 你定义的结构大小不对。给你改了一下:
RAS_MaxEntryName= 256; LPRASENTRYNAME = ^RASENTRYNAME;
RASENTRYNAME = record
dwSize : DWORD;
szEntryName:array[0..RAS_MaxEntryName] of char;
dwFlags : DWORD;
szPhonebookPath: array [0..MAX_PATH] of Char;
end;
这样就可以了