Показать сообщение отдельно
Старый 03.04.2012, 11:34   #7
L-ee-X
Разработчик
 
Аватар для L-ee-X
 
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 543
Написано 133 полезных сообщений
(для 220 пользователей)
Ответ: Ras API Create VPN на PB

Ни че не знаю я че у кого там совподало )) Но вроде сделал!
Вот код:
CompilerIf Defined(RASIPADDR,#PB_Structure) = 0 
  
Structure RASIPADDR
    a
.b 
    b
.b 
    c
.b 
    d
.b 
  EndStructure 
CompilerEndIf

CompilerIf Defined
(RASENTRY,#PB_Structure) = 0
  
Structure RASENTRY 
    dwSize
.l 
    dwfOptions
.l 
    dwCountryID
.l 
    dwCountryCode
.l 
    szAreaCode
.c[#RAS_MaxAreaCode + 1] 
    
szLocalPhoneNumber.c[#RAS_MaxPhoneNumber + 1] 
    
dwAlternateOffset.l 
    ipaddr
.RASIPADDR 
    ipaddrDns
.RASIPADDR 
    ipaddrDnsAlt
.RASIPADDR 
    ipaddrWins
.RASIPADDR 
    ipaddrWinsAlt
.RASIPADDR 
    dwFrameSize
.l 
    dwfNetProtocols
.l 
    dwFramingProtocol
.l 
    szScript
.c[#MAX_PATH] 
    
szAutodialDll.c[#MAX_PATH] 
    
szAutodialFunc.c[#MAX_PATH] 
    
szDeviceType.c[#RAS_MaxDeviceType + 1] 
    
szDeviceName.c[#RAS_MaxDeviceName + 1] 
    
szX25PadType.c[#RAS_MaxPadType + 1] 
    
szX25Address.c[#RAS_MaxX25Address + 1] 
    
szX25Facilities.c[#RAS_MaxFacilities + 1] 
    
szX25UserData.c[#RAS_MaxUserData + 1] 
    
dwChannels.l 
    dwReserved1
.l 
    dwReserved2
.l 
    dwSubEntries
.l 
    dwDialMode
.l 
    dwDialExtraPercent
.l 
    dwDialExtraSampleSeconds
.l 
    dwHangUpExtraPercent
.l 
    dwHangUpExtraSampleSeconds
.l 
    dwIdleDisconnectSeconds
.l 
    dwType
.l 
    dwEncryptionType
.l 
    dwCustomAuthKey
.l 
    guidId
.GUID 
    szCustomDialDll
.c[#MAX_PATH] 
    
dwVpnStrategy.l 
    dwfOptions2
.l 
    dwfOptions3
.l 
    szDnsSuffix
.c[#RAS_MaxDnsSuffix] 
    
dwTcpWindowSize.l 
    szPrerequisitePbk
.c[#MAX_PATH] 
    
szPrerequisiteEntry.c[#RAS_MaxEntryName + 1] 
    
dwRedialCount.l 
    dwRedialPause
.l
    CompilerIf 
#WIN > $0501
      
ipv6addrDns.RASIPV6ADDR
      ipv6addrDnsAlt
.RASIPV6ADDR
    CompilerEndIf
    dwIPv4InterfaceMetric
.l 
    dwIPv6InterfaceMetric
.l 
    CompilerIf 
#WIN > $0501
      
ipv6addr.RASIPV6ADDR
    CompilerEndIf
    dwIPv6PrefixLength
.l 
    dwNetworkOutageTime
.l 
  EndStructure 
CompilerEndIf

VPNpar
.RASENTRY 
cb
.l = 0
RasGetEntryProperties_
(#Null, #Null, #Null, @cb.l, #Null, #Null)
Debug cb.l
 dwSize
.l = cb.l
 dwFlags
.l = 1023411984
 dwFlags2
.l = 17039360; 
 
VPNpar\dwSize = dwSize.l
 VPNpar
\dwfOptions = dwFlags 
 VPNpar
\dwfOptions2 = dwFlags2 
 VPNpar
\dwfNetProtocols = #RASNP_Ip 
 
VPNpar\dwFramingProtocol = #RASFP_Ppp 
 
VPNpar\dwType = 2
 VPNpar
\dwVpnStrategy = 1
 VPNpar
\dwEncryptionType = 1 
 VPNpar
\dwDialMode = 1 
 VPNpar
\dwRedialCount = 3 
 VPNpar
\dwRedialPause = 60 
 PokeS
(@VPNpar\szDeviceType,"VPN") 
 
PokeS(@VPNpar\szLocalPhoneNumber,"server.vpn") 
 
PokeS(@VPNpar\szDeviceName,"vpn") 
 
 
result = RasSetEntryProperties_(#Null, "VPN", @VPNpar, SizeOf(RASENTRY), #Null, 0) 
 
Debug result; // Возвращает 0 
Всем спасибо, все свободны

Проверил пока, что только на XP, как с работы приду, проверю на Win 7 )))Ну думаю там тоже работать будет
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ant0N (08.04.2012)