DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: cuiqingbo
今日帖子: 19
在线用户: 11
导航: 论坛 -> 网络通讯 斑竹:liumazi,sephil  
作者:
男 axfx (axfx) ▲▲▲▲▲ -
普通会员
2019/8/4 11:11:25
标题:
windows VPN拨号/断线重连 浏览:2271
加入我的收藏
楼主:
按此在新窗口浏览图片

按此在新窗口浏览图片
此帖子包含附件:
PNG 图像
大小:13.3K
----------------------------------------------
超低价出售pos/进销存/收银软件源码
https://item.taobao.com/item.htm?spm=a21dvs.23580594.0.0.4fee645eC26dvB&ft=t&id=671027238807
作者:
男 madwolf (林之白狼) ★☆☆☆☆ -
普通会员
2019/8/4 18:42:18
1楼: 没明白啥意思
----------------------------------------------
delphi加油!!
作者:
男 tuesdays (Tuesday) ▲▲▲▲△ -
普通会员
2019/8/4 20:27:53
2楼: @madwolf

应该是为win10准备的。 win10的拔号太蛋疼了。。 
楼主这个好用。
----------------------------------------------
delphi界写python最强, python界写delphi最强. 写自己的代码, 让别人去运行.
作者:
男 sail2000 (小帆工作室) ★☆☆☆☆ -
盒子活跃会员
2019/8/5 10:25:13
3楼: 建议 openconnect,跨平台
----------------------------------------------
delphi 是兴趣,和工作无关,即使它倒闭。又不靠它 delphi 吃饭,怕甚?
作者:
男 lovehuaibb (小坏) ★☆☆☆☆ -
普通会员
2019/8/7 10:33:09
4楼: Var
  hRasconn   :THRasConn;

Function CreateVPN(VPNName, ServerIP, UserName, PassWord:PAnsiChar):Boolean;
var
  Re         :TRasEntry;
  Rc         :TRasCredentialsA;
  Str        :Array [0..MAXCHAR] of AnsiChar;
begin
  Result := False;
  ZeroMemory(@Re, SizeOf(TRasEntry));
  ZeroMemory(@Rc, SizeOf(TRasCredentialsA));
  with Re do
  begin
    dwSize := Sizeof(TRasEntry);
    dwCountryCode := 86;
    dwCountryID := 86;
    dwDialExtraPercent := 75;
    dwDialExtraSampleSeconds := 120;
    dwDialMode := 1;
    dwEncryptionType := 3;
    dwfNetProtocols := 4;
    dwfOptions := 1024262928;
    dwfOptions2 := 367;
    dwFramingProtocol := 1;
    dwHangUpExtraPercent := 10;
    dwHangUpExtraSampleSeconds := 120;
    dwRedialCount := 3;
    dwRedialPause := 60;
    dwType := 2;
    dwVpnStrategy := 1;
    dwEncryptionType := 3;  //0 无  1 VPN 默认值 3 拨号默认值 可选

    lstrcpyA(@Str, 'PPTP');
    CopyMemory(@szDeviceName, @Str, lstrlenA(@Str));

    lstrcpyA(@Str, 'VPN');
    CopyMemory(@szDeviceType, @Str, lstrlenA(@Str));

    CopyMemory(@szLocalPhoneNumber, ServerIP, lstrlenA(ServerIP));
  end;
  with Rc do
  begin
    dwSize := SizeOf(TRasCredentialsA);
    dwMask := 11;
  end;
  CopyMemory(@Rc.szUserName, UserName, lstrlenA(UserName));
  CopyMemory(@Rc.szPassword, PassWord, lstrlenA(PassWord));
  if RasSetEntryPropertiesA(Nil, VPNName, @Re, SizeOf(TRasEntry), nil, 0) = ERROR_SUCCESS then
  begin
    if RasSetCredentialsA(Nil, VPNName, @Rc, 0) = ERROR_SUCCESS then
    begin
      Result := True;
    end;
  end;
end;

Function ConnectVPN(VPNName :PAnsichar):Boolean; stdcall;
Var
  DialParams :TRasDialParams;
  lpfPassword:LongBool;
  lpStatus   :TRasConnStatusA;
begin
  Result := False;
  ZeroMemory(@DialParams, SizeOf(TRasDialParams));
  with DialParams do
  begin
    dwSize := Sizeof(TRasDialParams);
    lstrcpyA(@szEntryName, VPNName);
  end;
  if RasGetEntryDialParamsA(nil, DialParams, lpfPassword) = ERROR_SUCCESS then
  begin
    if RasDialA(nil, nil, DialParams, 0, nil, hRasconn) = ERROR_SUCCESS then
    begin
      Result := True;
      if RasGetConnectStatusA(hRasconn, lpStatus) = ERROR_SUCCESS then
      begin
        OutputDebugStringA(lpStatus.szDeviceName);
        OutputDebugStringA(lpStatus.szDeviceType);
      end;
      Exit;
    end;
  end;
  if Not Result then
    RasDeleteEntryA(Nil, VPNName);
end;

Function CloseVPN():Boolean;
begin
  Result := True;
  if hRasconn > 0 then
  begin
    Result := RasHangUpA(hRasconn) = ERROR_SUCCESS;
    //if Result then
      //RasDeleteEntryA(Nil, VPNName);
  end;
end;


  if CreateVPN('VPN_Test', '6.6.6.6', 'vpn_user', '7xCode') then
  begin
    if ConnectVPN('VPN_Test') then
    begin
      Caption := 'ConnectIng';

    end;
  end;
----------------------------------------------
MyBlog http://www.7xcode.com
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行78.125毫秒 RSS