关于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;
因项目需要,需要通过程序利用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;
相关文章推荐
- 关于win7中HP LaserJet 1022n网络打印机重复打印的问题解决
- 小技巧:利用虚拟网卡解决虚拟主机引起的异构网络问题
- 用keras创建拟合网络解决回归问题Regression
- 一个我很长时间才解决的关于xp与2000共享的网络问题
- 关于引用网络echarts.js报错的问题解决方法
- 如何解决Vista或win7建立临时网络的无法Internet共享问题
- 解决了几乎所有Delphi+Access同仁的问题—动态创建、压缩Access数据库(*.MDB)
- 关于IPad,Iphone“无法加入网络”的可能出现的问题解决办法
- 关于allegro16.6 orCAD capture CIS 创建网表出现错误的问题解决方法
- 关于allegro16.6 orCAD capture CIS 创建网表出现错误的问题解决方法
- 解决win7下临时网络设置共享问题
- 用keras创建拟合网络解决回归问题Regression
- 解决win7能上网却右下角网络图标显示红色叉号的问题
- Java EE 下利用Servlet filter接口 和 GZIPOutputStream 包装流 解决web应用中网络传输数据量大的问题
- 关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案
- 关于利用浏览器下载网络视频文件的问题总结
- 关于cocoaPods 创建和一些解决问题
- 关于利用Jsoup解析HTML中&nbsp;变成非传统空格或乱码问题解决方法
- 关于win7升级win10后高分屏界面显示模糊问题,字迹显示模糊问题解决办法
- win7 X64 安装Oracle VM VirtualBox后无法创建com对象问题(已解决)