您的位置:首页 > 理论基础 > 计算机网络

关于WIN7下,DELPHI利用RAS去创建拨号网络的问题解决

2012-02-09 09:28 726 查看
项目背景:

       因项目需要,需要通过程序利用3G卡,去拨号上网,在利用RAS在WINXP 下可以正常拨号,但是在WIN7下却没有效果,经过分析,是因为创建的拨号器WINXP 下与WIN7上是有区别的,将处理代码贴上:function Tfrm_webMain.createRasEntry(existEntry:string):string;
var
dwResult, Size: Integer;
rasEntry: TRasEntry;
Buffer: array[0..255] of Byte;
ErrorInfo: array[0..100] of Char;
begin
Size := SizeOf(TRasEntry);
FillChar(RasEntry, SizeOf(TRasEntry), 0);
with RasEntry do
begin
dwSize := Size;
{启用软件压缩RASEO_SwCompression,启用第一个可使用设备拨号RASEO_SpecificNameServers,Use default gateway on remote network,RASEO_RemoteDefaultGateway}
dwfOptions :=RASEO_SwCompression+RASEO_SpecificNameServers+RASEO_RemoteDefaultGateway;
{$IFDEF WINVER>=$501}
dwfOptions2 :=RASEO2_DontNegotiateMultilink;//WIN7下 设置该属性,取消选择,为单链路连接协商多重链接
{$ENDIF}
strCopy(szDeviceName, PChar(CSAisinoModem));
dwfNetProtocols:=RASNP_Ip;
rasEntry.szDeviceType:=RASDT_Modem;
dwFramingProtocol := RASFP_Ppp;

end;
vDail.GetConnections;
//创建拨号连接
dwResult := RasSetEntryProperties(nil, PChar(CSAisinoModem), @rasEntry, Size, nil, 0);
if dwResult <> 0 then //创建拨号连接失败
begin
RasGetErrorString(dwResult, ErrorInfo, 100);
end
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐