大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> 程序开发 -> 利用RAS调用在VB6.0中实现拨号上网

利用RAS调用在VB6.0中实现拨号上网

时间: 2021-07-31 作者:daque

咱们常用的软硬件如:jetcar(此刻为flashget),go!zilla等都具备拨号上钩功效。那么,怎样在本人编写的运用步调中也实行上述的功效呢?正文就运用ras挪用引见在本人编写的运用步调怎样实行拨号上钩。  一.与拨号搜集相关的构造和因变量  1.rasdialparams95构造.其设置如次:public type rasdialparams95 dwsize as long szentryname(ras95_maxentryname) as byte szphonenumber(ras95_maxphonenumber) as byte szcallbacknumber(ras95_maxcallbacknumber) as byte szusername(unlen) as byte szpassword(pwlen) as byte szdomain(dnlen) as byteend type   个中,dwsize表白该构造的巨细(以字节为单元)。szentryname表白一个长途考察的进口名,也即是windows下的拨号搜集中的贯穿图标小的笔墨;szentryname参数然而是空串,表白仅与第一个灵验的modem创造长途贯穿。szphonenumber为表白呼唤的号子。当szentryname是空时,zphonenumber不许为空。szcallbacknumber表白回叫号子,普遍都设为空。szusername为创造长途考察的用户名。szpassword为创造长途考察的暗号。szdomain为举行长途考察用户名和暗号认证的域名。咱们将szdomain设为空,表白长途考察的效劳器也是该域名下的分子。  2.rasdial因变量.其api证明为:public declare function rasdial lib "rasapi32.dll" alias "rasdiala" (lprasdialextensions as any, byval lpszphonebook as string, lprasdialparams as any, byval dwnotifiertype as long, lpvnotifier as long, lphrasconn as long) as long   rasdial因变量用来创造ras存户机和ras效劳器的贯穿。  各参数证明如次:   lprasdialextensions参数在windows95/98下被忽视。   lpszphonebook参数在windows95/98下也被忽视。   lprasdialparams参数是指向一个含有ras贯穿参数值的rasdialparams构造变量。  dwnotifiertype参数用来指出参数lpvnotifier的本质。若lpvnotifier 为null,则dwnotifiertype的值被忽视;若lpvnotifier不为null,则dwnotifiertype该当为下列值之一:  (1).0xffffffff------指出lpvnotifier参数是一个接受过程报告动静的窗口句柄;  (2).0----------------指出lpvnotifier指向一个rasdialfunc回调因变量;  (3).1----------------指出lpvnotifier指向下一个rasdialfunc1回调因变量。  lpvnotifier参数用来指向一个接受rasdial事变报告的窗口大概回调因变量,其本质由dwnotifiertype参数确定:  (1).若lpvnotifier不null,表白是异步通讯。即rasdial会对每个事变发送一个窗口动静大概挪用回调因变量。rasdial因变量会登时归来,它经过窗口大概挪用回调因变量创造贯穿,与过程通讯。  (2).若lpvnotifier是null,表白同步通讯。即rasdial因变量在贯穿创造实行大概波折后才会归来。  lphrasconn参数指向hrasconn变量,必需先将lphrasconn树立为null,而后再挪用rasdial因变量。即使rasdial因变量挪用胜利,lphrasconn会安置一个ras贯穿句柄。  3.rashangup因变量.其api证明为:public declare function rashangup lib "rasapi32.dll" alias "rashangupa" (byval hrasconn as long) as long   rashangup因变量用来割断一个ras贯穿。其参数hrasconn为指向一个ras贯穿的句柄。  二.用vb6.0实行ras拨号上钩进程。  兴建一个工程,取名为rasdial;而后在该工程中介入如次名目:  1.兴建一个窗体form1,而后在该窗体中介入如次组件:   ("贯穿"按钮取名为ras_dial,"挂断"按钮取名为:ras_hangup,"退出"按钮取名为:"cancel".   3个文本框辨别取名为:phonenumber,username,password.)2.双击贯穿按钮,介入如次代码:private sub ras_dial_click()dim temp as longif phonenumber.text = "" or username.text = "" or password.text = "" thentemp = msgbox("您没有输出灵验的拨号搜集参数。", vbokonly, "缺点")exit subend iftemp = addconnection("", phonenumber.text, "", username.text, password.text, "")select case tempcase error_port_already_open: temp = msgbox("缺点,端口仍旧翻开!", vbokonly, "error")case error_unknown: temp = msgbox("未知的缺点!", vbokonly, "error")case error_request_timeout: temp = msgbox("缺点,乞求超时!", vbokonly, "error")case error_passwd_expired: temp = msgbox("缺点,您没有输出暗号!", vbokonly, "error")case error_no_dialin_permission: temp = msgbox("缺点,没有拨号音!", vbokonly, "error")case error_server_not_responding: temp = msgbox("缺点,拨入的长途计划机没有相应!", vbokonly, "error")case error_unrecognized_response: temp = msgbox("缺点,未知的相应!", vbokonly, "error")case error_no_responses: temp = msgbox("缺点,没有相应!", vbokonly, "error")case error_device_not_ready: temp = msgbox("缺点,摆设没有筹备好!", vbokonly, "error")case error_line_busy: temp = msgbox("缺点,占线!", vbokonly, "error")case error_no_answer: temp = msgbox("缺点,没有应答旗号!", vbokonly, "error")case error_no_carrier: temp = msgbox("缺点,没有载波旗号!", vbokonly, "error")case error_no_dialtone: temp = msgbox("缺点,没有拨号音!", vbokonly, "error")case error_authentication_failure: temp = msgbox("用户名暗号堕落!", vbokonly, "error")case error_ppp_timeout: temp = msgbox("ppp接入超时。", vbokonly, "error")end selectend sub3.双击挂断按钮,介入如次代码:private sub ras_hangup_click()dim temp as longtemp = rashangup(hrasconn)end sub4.双击退出按钮,介入如次代码:private sub cancel_click()unload meend sub5.结果,兴建一个模块,取名为ras_dial,介入如次代码:option explicitpublic hrasconn as long '设置一个指向ras挪用的全部句柄public const apinull = 0&public const unlen = 256public const dnlen = 15public const pwlen = 256public const ras95_maxphonenumber = 128public const ras95_maxentryname = 256public const ras95_maxcallbacknumber = ras95_maxphonenumberpublic type rasdialparams95dwsize as longszentryname(ras95_maxentryname) as byteszphonenumber(ras95_maxphonenumber) as byteszcallbacknumber(ras95_maxcallbacknumber) as byteszusername(unlen) as byteszpassword(pwlen) as byteszdomain(dnlen) as byteend type'**********************************'* ras挪用缺点代号 *'**********************************public const not_supported = 120&public const rasbaseerror = 600&public const success = 0&public const error_port_already_open = (rasbaseerror + 2)public const error_unknown = (rasbaseerror + 35)public const error_request_timeout = (rasbaseerror + 38)public const error_passwd_expired = (rasbaseerror + 48)public const error_no_dialin_permission = (rasbaseerror + 49)public const error_server_not_responding = (rasbaseerror + 50)public const error_unrecognized_response = (rasbaseerror + 52)public const error_no_responses = (rasbaseerror + 60)public const error_device_not_ready = (rasbaseerror + 66)public const error_line_busy = (rasbaseerror + 76)public const error_no_answer = (rasbaseerror + 78)public const error_no_carrier = (rasbaseerror + 79)public const error_no_dialtone = (rasbaseerror + 80)public const error_authentication_failure = (rasbaseerror + 91)public const error_ppp_timeout = (rasbaseerror + 118)'**********************************'* ras api 证明 *'**********************************public declare function lstrcpy lib "kernel32" alias "lstrcpya" (lpstring1 as any, byval lpstring2 as string) as longpublic declare function rasdial lib "rasapi32.dll" alias "rasdiala" (lprasdialextensions as any, byval lpszphonebook as string, lprasdialparams as any, byval dwnotifiertype as long, lpvnotifier as long, lphrasconn as long) as longpublic declare function rashangup lib "rasapi32.dll" alias "rashangupa" (byval hrasconn as long) as long public function addconnection(strnewentryname as string, strnewphonenumber as string, strnewcallbacknumber as string, strnewusername as string, strnewpassword as string, strnewdomain as string) as integerdim lngretcode as longdim lngretlstrcpy as longdim lngrethangup as longdim lprasdialparams as rasdialparams95lprasdialparams.dwsize = 1052 '在windows95/9第88中学必需将dwsize设为1052'运用lstrcpy因变量将字符串正片到byte数组lngretlstrcpy = lstrcpy(lprasdialparams.szentryname(0), strnewentryname)lngretlstrcpy = lstrcpy(lprasdialparams.szphonenumber(0), strnewphonenumber)lngretlstrcpy = lstrcpy(lprasdialparams.szcallbacknumber(0), strnewcallbacknumber)lngretlstrcpy = lstrcpy(lprasdialparams.szusername(0), strnewusername)lngretlstrcpy = lstrcpy(lprasdialparams.szpassword(0), strnewpassword)lngretlstrcpy = lstrcpy(lprasdialparams.szdomain(0), strnewdomain)'咱们运用同步通讯screen.mousepointer = vbhourglasshrasconn = 0 'lngretcode = rasdial(byval apinull, vbnullstring, lprasdialparams, apinull, byval apinull, hrasconn)screen.mousepointer = vbdefault'尝试有没有缺点if lngretcode thenlngrethangup = rashangup(hrasconn)end ifaddconnection = lngretcodeend functionpublic sub removeconnection(h_rasconn as long)call rashangup(hrasconn)end sub   6.结果,编写翻译天生运用步调,咱们就实行了在本人的运用步调中拨号上钩。本步调在pwin98,vb6.0情况下编写翻译经过。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.