|
<p><font face="Verdana">创建VPN拨号连接*-----------------------------------------------<br/>* VPN 连接测试<br/>*-----------------------------------------------<br/>Local m.lnRasHandle, m.lcErrorStr, m.lnDisCount, m.lcDeviceType<br/>Local m.lcEntryName, m.lcPhoneNumber, m.lcUserName, m.lcPassword</font></p>
<p><font face="Verdana">*-----------------------------------------------<br/>* 创建拨号连接<br/>*-----------------------------------------------<br/>m.lcErrorStr = ""<br/>m.lcEntryName = "★★★"<br/>m.lcDeviceType = "vpn"<br/>If Ras_CreateEntry( m.lcEntryName, m.lcDeviceType, @lcErrorStr )<br/> = Messagebox("已经创建: "+m.lcEntryName, 0+64+0, "提示信息")<br/>Else<br/> = Messagebox(m.lcErrorStr, 0+16+0, "创建: "+m.lcEntryName+" 失败!")<br/> Return .F.<br/>Endif</font></p>
<p><font face="Verdana">*-----------------------------------------------<br/>* 连接VPN 测试<br/>*-----------------------------------------------<br/>m.lcPhoneNumber = "61.142.173.215"<br/>m.lcUserName = "huangyu"<br/>m.lcPassword = "huangyuhehe"</font></p>
<p><font face="Verdana">m.lnDisCount = 0<br/>m.lnRasHandle = 0<br/>m.lcErrorStr = ""<br/>m.lnRasHandle = Ras_Connect( m.lcEntryName, m.lcPhoneNumber, m.lcUserName, m.lcPassword, @lcErrorStr )<br/>If m.lnRasHandle > 0<br/> * 连接成功<br/> = Messagebox("已经连接: "+m.lcEntryName, 0+64+0, "提示信息")<br/> If Ras_DisConn( m.lnRasHandle, @lcErrorStr )<br/> * 断开成功<br/> = Messagebox("已经断开: "+m.lcEntryName, 0+64+0, "提示信息")<br/> Else<br/> * 断开失败<br/> = Messagebox(m.lcErrorStr, 0+16+0, "断开: "+m.lcEntryName+" 失败!")<br/> * 尝试断开所有连接<br/> m.lnDisCount = Ras_DisConn_All( @lcErrorStr )<br/> If m.lnDisCount > 0<br/> * 断开所有连接成功<br/> = Messagebox("已经断开: "+Alltrim(Str(m.lnDisCount))+" 个连接", 0+64+0, "提示信息")<br/> Else<br/> * 断开所有连接失败<br/> = Messagebox(m.lcErrorStr, 0+16+0, "断开: 所有连接 失败!")<br/> Endif<br/> Endif<br/>Else<br/> * 连接失败<br/> = Messagebox(m.lcErrorStr, 0+16+0, "连接: "+m.lcEntryName+" 失败!")<br/>Endif</font></p>
<p><font face="Verdana">*-----------------------------------------------<br/>* 删除拨号连接<br/>*-----------------------------------------------<br/>m.lcErrorStr = ""<br/>If Ras_DeleteEntry( m.lcEntryName, @lcErrorStr )<br/> = Messagebox("已经删除: "+m.lcEntryName, 0+64+0, "提示信息")<br/>Else<br/> = Messagebox(m.lcErrorStr, 0+16+0, "删除: "+m.lcEntryName+" 失败!")<br/>Endif</font></p>
<p><font face="Verdana">*-----------------------------------------------<br/>Return</font></p>
<p><font face="Verdana">*===============================================<br/>* 拨号连接函数库<br/>*===============================================</font></p>
<p><font face="Verdana">Endfunc</font></p>
<p><font face="Verdana">*-----------------------------------------------<br/>* 函数: Ras_CreateEntry<br/>* 功能: 建立一个拨号连接<br/>* 参数: tcEntryName C, 连接名称<br/>* tcErrorStr C, 错误信息<br/>* 返回: IsCreated L, 是否建立<br/>* 设计: 红雨<br/>* 时间: 2005.12.18<br/>*-----------------------------------------------<br/>Function Ras_CreateEntry( tcEntryName, tcDeviceType, tcErrorStr )<br/> Local m.lnRetval, m.lcRASEntryProperties<br/> m.lnRetval = -1<br/> m.tcErrorStr = ""<br/> m.tcDeviceType = Iif(Type("m.tcDeviceType")="C", m.tcDeviceType, "vpn")<br/> If Type("m.tcEntryName")="C" And !Empty(m.tcEntryName)<br/> Declare Integer RasValidateEntryName In RasAPI32.Dll ;<br/> String lpszPhonebook, ;<br/> String lpRasDialName<br/> Declare Integer RasSetEntryProperties In RasAPI32.Dll ;<br/> String lpszPhonebook, ;<br/> String lpszEntry, ;<br/> String @lpRasEntry, ;<br/> Integer @lpdwEntryInfoSize, ;<br/> String @lpbpDeviceInfo, ;<br/> Integer @lpdwDeviceInfoSize<br/> = RasValidateEntryName(Null, m.tcEntryName)<br/> m.lcRASEntryProperties = Chr(232)+Chr(6)+Chr(0)+Chr(0) ;<br/> + Chr(16)+Chr(29)+Chr(0)+Chr(48) ;<br/> + Replicate(Chr(0), 964) ;<br/> + Padr(m.tcDeviceType, 796, Chr(0))<br/> m.lnRetval = RasSetEntryProperties(Null, m.tcEntryName, @lcRASEntryProperties, 1768, Null, 0)<br/> If m.lnRetval # 0<br/> m.tcErrorStr = Ras_GetError( m.lnRetval )<br/> Endif<br/> Else<br/> m.tcErrorStr = "名称参数错误!"<br/> Endif<br/> Return Empty(m.tcErrorStr)<br/>Endfunc</font></p>
<p><font face="Verdana">*-----------------------------------------------<br/>* 函数: Ras_DeleteEntry<br/>* 功能: 删除一个拨号连接<br/>* 参数: tcEntryName C, 连接名称<br/>* tcErrorStr C, 错误信息<br/>* 返回: IsDeleted L, 是否删除<br/>* 设计: 红雨<br/>* 时间: 2005.12.18<br/>*-----------------------------------------------<br/>Function Ras_DeleteEntry( tcEntryName, tcErrorStr )<br/> Local m.lnRetval<br/> m.lnRetval = -1<br/> m.tcErrorStr = ""<br/> If Type("m.tcEntryName")="C" And !Empty(m.tcEntryName)<br/> Declare Integer RasDeleteEntry In RasAPI32.Dll ;<br/> String lpszPhonebook, ;<br/> String lpRasDialName<br/> m.lnRetval = RasDeleteEntry(Null, m.tcEntryName)<br/> If m.lnRetval # 0<br/> m.tcErrorStr = Ras_GetError( m.lnRetval )<br/> Endif<br/> Else<br/> m.tcErrorStr = "名称参数错误!"<br/> Endif<br/> Return Empty(m.tcErrorStr)<br/>Endfunc</font></p>
<p><font face="Verdana">*-----------------------------------------------<br/>* 函数: Ras_GetError<br/>* 功能: 获取Ras错误信息<br/>* 参数: tnRasRetval I, 错误代码<br/>* 返回: tcErrorStr C, 错误信息<br/>* 设计: 红雨<br/>* 时间: 2005.12.18<br/>*-----------------------------------------------<br/>Function Ras_GetError( tnRasRetval )<br/> Local m.lcErrorStr<br/> m.lcErrorStr = Space(256)<br/> If Type("m.tnRasRetval")="N" And m.tnRasRetval > 0<br/> Declare Integer RasGetErrorString In RasAPI32.Dll ;<br/> Integer lErrVal, ;<br/> String @sErrStr, ;<br/> Integer lBufSize<br/> If !Empty(RasGetErrorString(m.tnRasRetval, @lcErrorStr, Len(m.lcErrorStr)))<br/> m.lcErrorStr = "Ras 未知错误!"<br/> Endif<br/> Endif</font></p>
<p><font face="Verdana"> Return Alltrim(m.lcErrorStr)<br/>Endfunc <br/></font></p> |
|