谁有ras.dcu?给我一个谢谢!
我在网上找到了一个调用拨号网络的程序!可是里面包含了ras包,我不知道这个包是哪里的!
谁有给我发一个ilikenba@263.net
unit Unit13;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,IniFiles, ExtCtrls,Ras,ShellApi, StdCtrls;
type
TDialer = class(TForm)
Button1: TButton;
private
{ Private declarations }
public
function Dial(EntryName, UserName, Password : String):Boolean;
//自动拨号
function AutoDial : Boolean;
//修改拨号网络属性
function DoProperties(AHandle:THandle;EntriesName : string) : Boolean;
//新建拨号网络
function NewConnection(AHandle:THandle) : Boolean;
//获取网络电话本
function LoadPhoneBook : Boolean;
//断开连接
procedure Disconnected;
//获得调制解调器信息
function GetModemInfo : Boolean;
{ Public declarations }
end;
var
Dialer: TDialer;
implementation
{$R *.dfm}
function RasGetErrorStringA: DWORD;external 'RasApi32.dll';
function TDialer.Dial(EntryName, UserName, Password : String):Boolean;
var
rdParams : TRASDIALPARAMS;
dwRet : DWORD;
Buf : array [0..255] of Char;
begin
Result := false;
// setup RAS Dial Parameters
FillChar(rdParams, SizeOf(rdParams), 0);
rdParams.dwSize := SizeOf(TRASDIALPARAMS);
strCopy(rdParams.szUserName, PChar(UserName));
strCopy(rdParams.szPassword, PChar(Password));
strCopy(rdParams.szEntryName, PChar(EntryName));
rdParams.szPhoneNumber[0] := #0;
rdParams.szCallbackNumber[0] := '*';
rdParams.szDomain := '*';
//g_hWnd := Handle;
hRasConn := 0;;
dwRet := RasDialA(nil, nil, @rdParams, 0, nil, @hRasConn);
if dwRet <> 0 then
begin
RasGetErrorStringA(dwRet, @Buf[0], SizeOf(Buf));
exit;
//Disconnected;
end;
result:=true;
end;
//断开连接
procedure TDialer.Disconnected;
begin
if hRasConn <> 0 then
begin
RasHangUpA(hRasConn);
hRasConn := 0;
end;
end;
//程序启动自动拨号
function TDialer.AutoDial : Boolean;
var
IniFile : TIniFile;
aEntryName : String;
aUserName : String;
aPassword : String;
EntryName : string;
UserName : string;
FIniFileName : String;
rdParams : TRASDIALPARAMS;
dwRet : DWORD;
Buf : array [0..255] of Char;
begin
Result := False;
FIniFileName := Copy(Application.ExeName, 1,
Length(Application.ExeName) - 3) + 'ini';
IniFile := TIniFile.Create(FIniFileName);
try
aEntryName := IniFile.ReadString('Last', 'EntryName', '');
aUserName := IniFile.ReadString('Last', 'UserName', '');
EntryName := CrunchName(Trim(aEntryName));
UserName := CrunchName(Trim(aUserName));
aPassword := IniFile.ReadString('RAS_ENTRY_' + EntryName,
'USER_' + UserName, '*');
finally
IniFile.Free;
end;
//Result := Dial(aEntryName,aUserName,aPassword);
FillChar(rdParams, SizeOf(rdParams), 0);
rdParams.dwSize := SizeOf(TRASDIALPARAMS);
strCopy(rdParams.szUserName, PChar(aUserName));
strCopy(rdParams.szPassword, PChar(aPassword));
strCopy(rdParams.szEntryName, PChar(aEntryName));
rdParams.szPhoneNumber[0] := #0;
rdParams.szCallbackNumber[0] := '*';
rdParams.szDomain := '*';
//g_hWnd := Handle;
hRasConn := 0;;
dwRet := RasDialA(nil, nil, @rdParams, 0, nil, @hRasConn);
if dwRet <> 0 then
begin
RasGetErrorStringA(dwRet, @Buf[0], SizeOf(Buf));
exit;
//Disconnected;
end;
Result := True;
end;
//读取拨号网络电话本
function TDialer.LoadPhoneBook : Boolean;
var
Entries : array [0..15] of TRASENTRYNAME;
cb : DWORD;
cEntries : DWORD;
dwRet : DWORD;
Buf : array [0..127] of char;
I : Integer;
begin
Result := False;
setlength(PhoneBookName,20);
FillChar(Entries, SizeOf(Entries), 0);
Entries[0].dwSize := SizeOf(TRASENTRYNAME);
cb := SizeOf(Entries);
cEntries := 0;
dwRet := RasEnumEntriesA(NIL, NIL, @Entries[0], @cb, @cEntries);
if dwRet <> 0 then
begin
RasGetErrorStringA(dwRet, @Buf[0], SizeOf(Buf));
exit; //LogMessage(Buf);
end
else
begin
Result := True;
PhoneBookNumber := cEntries;
for I := 0 to cEntries - 1 do
PhoneBookName[I] := Entries[I].szEntryName;
end;
end;
unction TDialer.GetPhoneName : string;
var
I : Integer;
begin
LoadPhoneBook;
Result:='';
for I := 0 to PhoneBookNumber -1 do
Result := Result+PhoneBookName[I] + ',';
end;
//建立新的拨号网络连接
function TDialer.NewConnection(AHandle:THandle) : Boolean;
var
dwRet : DWORD;
Buf : Array [0..127] of char;
begin
Result := False;
//dwRet := RasCreatePhonebookEntryA(NewForm.Handle,nil);
dwRet := RasCreatePhonebookEntryA(AHandle,nil);
LoadPhoneBook;
if dwRet <> 0 then
begin
RasGetErrorStringA(dwRet, @Buf[0], SizeOf(Buf));
exit;
//LogMessage(Buf);
end;
Result := True;
end;
//编辑修改拨号网络属性
//function DoProperties(NewForm : TForm; EntriesName : String) : Boolean;
function TDialer.DoProperties(AHandle:THandle;EntriesName : string) : Boolean;
var
dwRet : DWORD;
Buf : Array [0..127] of char;
begin
Result := False;
//dwRet := RasEditPhonebookEntryA(NewForm , nil, PChar(EntriesName));
dwRet := RasEditPhonebookEntryA(AHandle, nil, PChar(EntriesName));
if dwRet <> 0 then
begin
RasGetErrorStringA(dwRet, @Buf[0], SizeOf(Buf));
//LogMessage(Buf);
end
else
Result := True;
end;
//获得调制解调器信息
function TDialer.GetModemInfo : Boolean;
var
dwRet : DWORD;
RasConn : array[0..15] of TRASCONN;
cb : DWORD;
cConnection : DWORD;
Buf : array [0..127] of char;
I : Integer;
begin
Result := True;
SetLength(DeviceName,20);
SetLength(DeviceType,20);
FillChar(RasConn, SizeOf(RasConn), 0);
RasConn[0].dwSize := SizeOf(TRASCONN);
cb :=Sizeof(RasConn);
cConnection := 0;
dwRet := RasEnumConnectionsA(@RasConn,@cb,@cConnection);
if dwRet<>0 then
begin
RasGetErrorStringA(dwRet, @Buf[0], SizeOf(Buf));
Result := False;
//LogMessage(Buf);
end;
DeviceNumber := cConnection;
for I:=0 to cConnection-1 do
begin
DeviceType[I]:= RasConn[I].szDeviceType;
DeviceName[I]:= RasConn[I].szDeviceName;
end;
end;
end.
问题点数:0、回复次数:2Top
1 楼ilikenba()回复于 2004-10-03 15:09:00 得分 0
如果连接RasAPI32.dll动态库的时候,TRASDIALPARAMS这个结构我不知道该怎样导入!高手指点呀!Top
2 楼welllove88(寒林)回复于 2004-10-08 16:43:15 得分 0
没有听过~~Top




