电话拨号问题(200分)

  • 主题发起人 主题发起人 china_hz
  • 开始时间 开始时间
C

china_hz

Unregistered / Unconfirmed
GUEST, unregistred user!
1.winexec( PChar('rundll32.exe rnaui.dll,RnaDial ' + '8888'),SW_SHOWNORMAL)
在WIN2000和XP中不能运行,没有rnaui.dll
2.RasGetEntryDialParams不能获得电话号码(szPhoneNumber),但能获得szUserName,szPassword
 
解释一下:实现打开指定拨号连接,就象点击已经建立的拨号连接名为‘8888’的拨号连接
 
怎么没人回答?我也想知道2000怎么用。
 
procedure TRasDialerForm.Dial(EntryName, UserName, Password : String);
var
rdParams : TRASDIALPARAMS;
dwRet : DWORD;
Buf : array [0..255] of Char;
begin
hRasConn := GetActiveConnHandle(EntryName);
if hRasConn <> 0 then begin
LogMessage('Connection already active');
Connected;
ConnectTime := $FFFFFFFF;
Exit;
end;

// 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, @RasDialFunc, @hRasConn);
if dwRet <> 0 then begin
RasGetErrorStringA(dwRet, @Buf[0], SizeOf(Buf));
LogMessage(IntToStr(dwRet) + ' ' + Buf);
Disconnected;
end
else begin
LogMessage('Dialing ''' + EntryName + '''');
CancelButton.Enabled := TRUE;
MnuCancel.Enabled:=TRUE;
ConnectButton.Enabled := FALSE;
MnuDialUp.Enabled:=FALSE;
end;
end;
 
to: onlyonekgx
首先感谢你的回复。但是程序没有实现我所要求的功能,因为程序开始并不知道是哪个EntryName只知道试用某个确定的szPhoneNumber。

需实现功能:检查拨号中是否有播出号码为某一特定号码的拨号连接,如果有使用检查到的第一个拨号号码为此特定号码的拨号连接进行连接。
即:假设系统有以下拨号连接
拨号1:拨号名称(AA),号码(8888)
拨号2:拨号名称(BB),号码(8163)
拨号3:拨号名称(CC),号码(16300)
,现系统要求找出拨号号码为(8163)的拨号连接,然后拨号(使用拨号2)
 
后退
顶部