读书人

如何使用RasSetEntryProperties设置IP

发布时间: 2012-03-05 11:54:01 作者: rapoo

怎么使用RasSetEntryProperties设置IPSec预共享密钥? - C++ Builder / Windows SDK/API
怎么使用RasSetEntryProperties可以设置IPSec预共享密钥?

RASENTRY re;哪个属性是设置密钥的?

谢谢

[解决办法]
我牺牲了今天的午休时间给你写了一段测试代码。你这20分真少呀,

C/C++ code
void __fastcall TForm1::Button1Click(TObject *Sender){char *szEntryName = "VPN拨号";HRASCONN hRasConn;RASDIALPARAMS rdParams;DWORD dwRet;char   szBuf[512];rdParams.dwSize=sizeof(RASDIALPARAMS);strcpy(rdParams.szEntryName,szEntryName);rdParams.szPhoneNumber[0] = '\0';rdParams.szCallbackNumber[0] = '\0';strcpy(rdParams.szUserName,"aaa");strcpy(rdParams.szPassword, "123");rdParams.szDomain[0] = '\0';hRasConn=NULL;//  RASENTRY entry;  ::ZeroMemory(&entry, sizeof(entry));  entry.dwSize=sizeof(entry);//  DWORD size=sizeof(entry);//dwRet=RasGetEntryProperties(NULL,NULL,&entry,&size,NULL,NULL);  //1024262928  //940376592// ShowMessage(entry.dwfNetProtocols);//      //entry.dwfOptions = entry.dwfOptions | RASEO_UseCountryAndAreaCodes;      //entry.dwfOptions = entry.dwfOptions | RASEO_SpecificIpAddr;      //entry.dwfOptions = entry.dwfOptions | RASEO_SpecificNameServers;      //entry.dwfOptions = entry.dwfOptions | RASEO_IpHeaderCompression;      entry.dwfOptions = entry.dwfOptions | RASEO_RemoteDefaultGateway;      //entry.dwfOptions = entry.dwfOptions | RASEO_DisableLcpExtensions; //禁用LCP扩展     // entry.dwfOptions = entry.dwfOptions | RASEO_TerminalBeforeDial;     // entry.dwfOptions = entry.dwfOptions | RASEO_TerminalAfterDial;      entry.dwfOptions = entry.dwfOptions | RASEO_ModemLights;//连接后在通知区域显示图标      entry.dwfOptions = entry.dwfOptions | RASEO_SwCompression; //启用软件压缩      //entry.dwfOptions = entry.dwfOptions | RASEO_RequireEncryptedPw;      //entry.dwfOptions = entry.dwfOptions | RASEO_RequireMsEncryptedPw;      //entry.dwfOptions = entry.dwfOptions | RASEO_RequireDataEncryption;      //entry.dwfOptions = entry.dwfOptions | RASEO_NetworkLogon;      //entry.dwfOptions = entry.dwfOptions | RASEO_UseLogonCredentials;//登陆域      entry.dwfOptions = entry.dwfOptions | RASEO_PromoteAlternates;      entry.dwfOptions = entry.dwfOptions | RASEO_ShowDialingProgress; //显示连接进度      entry.dwfOptions2 = entry.dwfOptions2 | RASEO2_DontNegotiateMultilink; //不为单路连接协商多路链接      entry.dwfOptions2 = entry.dwfOptions2 | RASEO2_DisableNbtOverIP;//禁用tcp/ip上的NetBEUI      entry.dwfOptions2 = entry.dwfOptions2 | RASEO2_Internet;      entry.dwfOptions2 = entry.dwfOptions2 | RASEO2_SecureClientForMSNet;//ms网络客户端      entry.dwfOptions2 = entry.dwfOptions2 | RASEO2_SecureFileAndPrint;//文件和打印      entry.dwfOptions2 = entry.dwfOptions2 | RASEO2_ReconnectIfDropped;//断线重拨      entry.dwfOptions2 = entry.dwfOptions2 | RASEO2_UsePreSharedKey;      //entry.dwfNetProtocols =  entry.dwfNetProtocols|RASNP_Ip;      //entry.dwfNetProtocols = entry.dwfNetProtocols | RASNP_NetBEUI;     //entry.dwfNetProtocols = entry.dwfNetProtocols | RASNP_Ipx;      entry.dwVpnStrategy = VS_L2tpOnly;      entry.dwFramingProtocol = RASFP_Ras;//RASFP_Ppp;      StrPCopy(entry.szScript, "");      StrPCopy(entry.szLocalPhoneNumber, "");      StrPCopy(entry.szDeviceName, "WAN 微型端口 (L2TP)");      StrPCopy(entry.szDeviceType, "VPN");      entry.dwType   = RASET_Vpn;//RASET_Broadband;dwRet = RasSetEntryProperties(NULL,szEntryName,&entry,sizeof(RASENTRY),NULL,NULL);if(!dwRet){   ShowMessage("创建连接成功!");}RASCREDENTIALS RAScredentials; ::ZeroMemory(&RAScredentials, sizeof(RAScredentials)); RAScredentials.dwSize =  sizeof(RAScredentials); RAScredentials.dwMask = RASCM_PreSharedKey; StrPCopy(RAScredentials.szPassword,"aaaa"); dwRet = RasSetCredentials(NULL,szEntryName,&RAScredentials,false);if(!dwRet){   ShowMessage("设置IPSec成功!");}}//------------------------------------------- 

读书人网 >C++ Builder

热点推荐