DELPHI中如何调用拨号函数

  • 主题发起人 主题发起人 import
  • 开始时间 开始时间
I

import

Unregistered / Unconfirmed
GUEST, unregistred user!
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
 

Similar threads

I
回复
0
查看
451
import
I
I
回复
0
查看
626
import
I
I
回复
0
查看
579
import
I
I
回复
0
查看
550
import
I
后退
顶部