各位大虾,如何自动查找windows系统中的所有拨号连接?(100分)

  • 主题发起人 主题发起人 scuyct
  • 开始时间 开始时间
S

scuyct

Unregistered / Unconfirmed
GUEST, unregistred user!
在windows系统中,如何通过读取注册表或者配置脚本读取系统中已有拨号连接信息。
有读取配置的sdk函数吗?如果能通过注册表读到,那么注册表的表项名称是什么,望
告知,谢谢
 
{+++++++++++++++++++++++
取当前所有的拨号连接的程式;
参数为传入的列表,过程成功为参数付值且返回值为真
否则为假;
调用方法类似
if GetEntries(Memo1.Lines) then
begin
end
else
begin
end;
Date:2001/03/07 12:30-----13:32
Remark:
+++++++++++++++++++++++++++++++++++++++++++++++++++++
}
function TForm1.GetEntries(List: TStrings):Boolean;
type
TRasEntryName = record
Size : DWORD;
EntryName: array[0..256] of Char;
end;

TRasEnumEntries = function(Reserved : Pointer;
PhoneBook : Pointer;
RasEntryName : Pointer;
var cb : DWORD;
var Entries : DWORD) : DWORD; stdcall;

const
RasAPI32='RASAPI32.dll';

var
FRasLibHandle : THandle;
RasEntries : array[1..25] of TRasEntryName;
Size : DWORD;
Count : DWORD;
i : DWORD;
RasEnumEntries : TRasEnumEntries;
begin
// if List=Nil then Exit;
try
List.Clear;

FRasLibHandle:=LoadLibrary(RasAPI32);
try
if FRasLibHandle=0 then Exit;

{ 获取RasEnumEntriesA方法地址;本方法的关键是对RASAPI32.dll提供的方法要
熟悉,利用API过程GetProcAddress来取DLL中的方法地址,给方法指针付值后
调用,其它如拨号程式,
TRasDial = function(RasDialExtensions : Pointer;
PhoneBook : Pointer;
var RasDialParams : TRasDialParams;
NotifierType : DWORD;
Notifier : Pointer;
var RasConn : THandle) : DWORD; stdcall;

@RasDial:=GetProcAddress(FRasLibHandle,'RasDialA');
拨号后挂起程式
TRasHangUp = function(RassCon : THandle) : DWORD; stdcall;
@RasHangUp:=GetProcAddress(FRasLibHandle,'RasHangUpA');
类同}
@RasEnumEntries:=GetProcAddress(FRasLibHandle,'RasEnumEntriesA');
if @RasEnumEntries=nil then Exit;

RasEntries[1].Size:=SizeOf(TRasEntryName);
Size:=SizeOf(RasEntries);
if RasEnumEntries(nil,nil,@RasEntries,Size,Count)=0 then
begin
for i:=1 to Count do
List.Add(RasEntries.EntryName);
end;
Result:=True;
finally
FreeLibrary(FRasLibHandle);
end;
except
end;

end;
 
后退
顶部