首页  编辑  

DELPHI中如何调用拨号函数

Tags: /超级猛料/Network.网络通讯/FTP和拨号/   Date Created:

]、。·ˉˇ¨〃々—~‖…’”〕〉》」』〗】∶!"'),.:;?]` A: 可以执行下面的语句:

winexec('rundll32.exe rnaui.dll,RnaDial '+'我的连接',9),其中我的连接为拨号网络中的名字。

另外,如果需要写电话拨号方面的程序,可以参照以下程序代码。注意:调试以下程序需要ras单元,还要加入一个私有变量dialparams: TRasDialParams;

1.得到机器的调制解调器列表

var

buffer: Pointer;

devices: LPRasDevInfo;

devSize, ndevs: Integer;

begin

devSize := 0;

ndevs := 0;

if RasEnumDevices(nil, devSize, ndevs) <> ERROR_BUFFER_TOO_SMALL then

ShowMessage('RasEnumDevices failed.');

buffer := AllocMem(devSize);

try

devices := buffer;

devices^.dwSize := SizeOf(TRasDevInfo);

if RasEnumDevices(buffer, devSize, ndevs) = 0 then

begin

while ndevs > 0 do

begin

cbo_Device.Items.Add(Format('%s=%s', [devices^.szDeviceName, devices^.szDeviceType]));

Inc(devices);

Dec(ndevs);

end;

end

else

ShowMessage('RasEnumDevices failed.');

finally

FreeMem(buffer);

end;

end;

2.如何拨号

var

r: integer;

c: Array[0..100] of Char;

hRas: THRasConn;

begin

Screen.Cursor := crHourglass;

FillChar(dialparams, SizeOf(TRasDialParams), 0);

with dialparams do

begin

dwSize := Sizeof(TRasDialParams);

//StrPCopy(szEntryName, lstEntrys.Items[lstEntrys.ItemIndex]);

StrPCopy(szUserName, edt_User.Text);//改变用户名

StrPCopy(szPassword, edt_Password.Text+'1234');//改变密码

StrPCopy(szPhoneNumber,edt_phone.Text);//改变电话号码

end;

hRas := 0;

r := RasDial(nil, nil,dialparams,0,nil,hRas);

if r <> 0 then

begin

RasGetErrorString(r, c, 100);

ShowMessage('错误: ' + c);

end;

Screen.Cursor := crDefault;

注意你要有RAS.pas unit