单位文秘网 2021-07-21 08:24:25 点击: 次
摘要:在今天随着家用电脑的普及,课堂作业量的相应减少,课余闲暇时间的增多,小学生喜欢玩电脑游戏的现象也越来越普遍,然而不少家长抱怨电脑游戏是个坏东西,孩子因为贪玩游戏,学习成绩下降了。媒介报道也揭露了因为游戏的诱惑,一些孩子参与了盗窃和抢劫,因此为了达到控制小孩上网,有必要设计程序来控制小孩上网。
关键词:vb sqlserver;上网方式;asp.net; API
中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)22-5348-06
Vb Achieve Control Children Online
ZHOU Ya-ming
(China Railway Communication Co., Ltd, Changzhou 213000, China)
Abstract: Today with the popularity of home computers, a corresponding reduction in the amount of classroom work, after-school leisure time increased, we have students like to play computer games more and more common phenomenon, but many parents complain that computer games are a bad thing, because kids fun game, scoring down. Media reports also revealed the temptation of the game, some of the children involved in the theft and looting, the child in order to control the Internet, the need to design programs to control children online.
Key words: vb sqlserver; Means of access;asp.net; API
1 设计原理
1.1 现在家庭宽带上网的几种方式
1.1.1 56K MODEM上网
虽然现在宽带很流行,但对于很多没有开通宽带的城市郊区或小乡镇读者而言,56K MODEM依然是其上网时的首选。56K MODEM是将电脑通过电话线连接到另一台电脑或一个电脑网络的装置,它的作用是将电脑的数字信号转换为能够依电话线路传输的模拟信号,通过网络传递到另外的电脑或服务器;对于接受到的模拟信号,则由它再解调为数字信号,以便电脑能够识别。
1.1.2 ISDN上网
ISDN(Integrated Services Digital Network,综合业务数字网),与56K MODEM相比,其具有以下几个优点:一是ISDN实现了端到端的数字连接,而MODEM在两个端点间传输数据时必须要经过D/A和A/D转换;二是ISDN可实现双向对称通信,并且最高速度可达到64Kbps或128Kbps。而56K MODEM属不对称传输,56K猫的下传(网到用户)速度为56Kbps,而上传(用户到网)速度只有33.6Kbps;三是ISDN可实现包括语音、数据、图像等综合性业务的传输,而56K MODEM却无法实现;四是可以实现一条普通电话线上连接的两部终端同时使用,可边上网边打电话、边上网边发传真、或者两部计算机同时上网、两部电话同时通话等。
1.1.3 DSL上网
国内目前最主流宽带接入方式是ADSL(Asymmetric Digital Subscriber Line)非对称数字用户线。为什么叫非对称数字用户线呢?这是因为ADSL被设计成向下流(下行,即从中心局到用户侧)比向上流(上行,即从用户侧到中心局)传送的带宽宽,其下行速率从512Kbit/s到8Mbit/s,而上行速率则从64Kbit/s到640Kbit/s。ADSL接入Internet有虚拟拨号和专线接入两种方式。采用虚拟拨号方式的用户采用类似MODEM和ISDN的拨号程序,在使用习惯上与原来的方式没什么不同。采用专线接入的用户只要开机即可接入Internet。
1.2 现状分析
从上述分析,现在城镇家庭用户普遍采用ADSL或小区宽带上网方式,由于其接入网速度较以前有很大提高,不少用户采用了adsl+pppoe拨号路由器+n台电脑上网的方式
1.3 针对以上上网方式的分析和控制上网原理:
从图1可以看出,有两个控制点可以控制上网。
1) 控制路由器接入网络(可采取两种方法:运营商限制(不在本程序设计范围);强制路由器下线(会导致所有电脑不能上网)。
2) 控制电脑接入路由器(控制路由器的电脑接入端口;控制电脑能访问内网,但不能访问外网)。
通过以上分析,决定采用最后一种方式,这样既简便,又不妨碍其他电脑上网。
2 选取编程语言和数据库语言
2.1 桌面编程语言选用vb
VB6.0全称为VisualBasic 6.0,是微软公司于1998年推出的可视化编程工具MSDN之一,是目前世界上使用最广泛的程序开发工具之一。结构简单,编写程序对系统的资源占有极低,是程序编写者编写小型程序的第一选择!
2.2 数据库选用mssql2000
SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用
2.3 网页编程选用vs2005
.NET 是微软公司为了适应 Internet 发展的需要所提供的特别适合网络编程和网络服务的平台。.NET 给计算机业带来了全新的、快速而敏捷的高信度计算能力,也给软件开发人员提供了高效的开发工具。 Visual Studio 2005是一个功能强大、高效并且可扩展的编程环境。有许多激动人心的新功能,提供统一的集成开发环境,支持在同样的开发环境里用Visual Basic、 Visual C++、 VisualC#、Visual J#和数十种编程语言,编写、调试和部署应用程序。 VisualBasic.NET 是.NET 平台上的主流程序设计语言之一。
改进软件开发生命周期
3 程序的逻辑图
如图2所示。
4 程序实现功能
1) 用户端程序每秒读取数据库数据(即上网时间),并实时对上网时间进行减操作,如上网时间为0,则控制本电脑访问外网,并停止计时。
2) 网页端程序实现添减上网时间(为负则为减时间),主要是实现能动态远程控制小孩上网。
3) 用户端程序实现添减上网时间(为负则为减时间),主要用于给小孩电脑加时间,用户端程序开机自启,并切断该电脑上外网。
4) 用户端程序启动后实现不能关闭该程序,点击该程序关闭窗口,则该程序缩小到任务栏。
5 程序运行图
5.1 网页图
如图3所示。
5.2 程序图
如图4所示。
6 程序源码(部分)
6.1 网页源码
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
"在此处放置初始化页的用户代码
On Error Resume Next
If Page.IsPostBack = False Then
Dim rc As New ADODB.Connection
Dim rr As New ADODB.Recordset
rc.Open("Provider=SQLOLEDB.1;Password=*****;Persist Security Info=True;User ID=sa;Initial Catalog=网站测试;Data Source=*.*.*.*")
rr.Open("select * from 上网时长", rc, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockBatchOptimistic)
Dim temp = rr.Fields(0).Value
TextBox1.Text = CStr(Int(temp / 60)) + "分"
rr.Close()
rc.Close()
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
On Error Resume Next
If IsNumeric(TextBox2.Text) = False Then Exit Sub
Dim rc As New ADODB.Connection
Dim rr As New ADODB.Recordset
rc.Open("Provider=SQLOLEDB.1;Password=****;Persist Security Info=True;User ID=sa;Initial Catalog=网站测试;Data Source=*.*.*.*")
rr.Open("update 上网时长 set 时长=" + CStr(Int(TextBox2.Text * 60)), rc, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockBatchOptimistic)
rc.Close()
End Sub
End Class
6.2 vb源码
6.2.1 PING模块(主要用于主程序ping测外网是否通)
"Option Explicit
......
Public Function ping(网页地址, 包长)
On Error Resume Next
Dim Reply As ICMP_ECHO_REPLY
ping = -1
Dim hIcmp As Long
Dim lAddress As Long
Dim lTimeOut As Long
Dim StringToSend As String
"Short string of data to send
For i = 1 To 包长
StringToSend = StringToSend + "h"
Next
"ICMP (ping) timeout
lTimeOut = 100 "ms
"Convert string address to a long representation.
sAddress = GetIPFromHostName(网页地址)
lAddress = inet_addr(sAddress)
If (lAddress <> -1) And (lAddress <> 0) Then
"Create the handle for ICMP requests.
hIcmp = IcmpCreateFile()
If hIcmp Then
"Ping the destination IP address.
Call IcmpSendEcho(hIcmp, lAddress, StringToSend, Len(StringToSend), 0, Reply, Len(Reply), lTimeOut)
"Reply status
"ping = Reply.Status
If Reply.Status = 0 Then
ping = 0 " Reply.RoundTripTime
Else
ping = -1 "EvaluatePingResponse(Reply.Status)
End If
"Close the Icmp handle.
IcmpCloseHandle hIcmp
Else
" Debug.Print "failure opening icmp handle."
ping = -1
End If
Else
ping = -1
End If
End Function
Private Function GetStrFromPtrA(ByVal lpszA As Long) As String
GetStrFromPtrA = String$(lstrlenA(ByVal lpszA), 0)
Call lstrcpyA(ByVal GetStrFromPtrA, ByVal lpszA)
End Function
6.2.2 Module1实现托盘
……
Sub main()
If App.PrevInstance = True Then Exit Sub
自动拨号.Show
End Sub
6.2.3 添加时长窗体:(实现添加时长)
Private Sub Command1_Click()
On Error Resume Next
temp = 获得时长
If temp + Text1.Text * 60 < 0 Then
temp2 = temp
Else
temp2 = Text1.Text * 60
End If
修改时长 temp2
MsgBox ("添加成功")
添加时长.Hide
End Sub
Sub 修改时长(时长)
On Error Resume Next
If IsNumeric(时长) = False Then Exit Sub
时长 = Int(时长)
Dim rc As New ADODB.Connection
Dim rr As New ADODB.Recordset
rc.Open "Provider=SQLOLEDB.1;Password=***;Persist Security Info=True;User ID=sa;Initial Catalog=网站测试;Data Source=***.***.***.***"
rr.Open "update 上网时长 set 时长=时长+" + CStr(时长), rc, adOpenDynamic, adLockBatchOptimistic
rc.Close
End Sub
Private Function 获得时长()
On Error Resume Next
Dim rc As New ADODB.Connection
Dim rr As New ADODB.Recordset
rc.Open "Provider=SQLOLEDB.1;Password=***;Persist Security Info=True;User ID=sa;Initial Catalog=网站测试;Data Source=***.***.***.***"
rr.Open "select * from 上网时长", rc, adOpenDynamic, adLockBatchOptimistic
获得时长 = rr.Fields(0)
rr.Close
rc.Close
End Function
6.2.4 自动拨号窗体(实现实时上网控制,和上网时间实时减操作)
……
Private Sub Command1_Click()
On Error Resume Next
If myping.ping("192.168.1.1", 5) = -1 Then
MsgBox ("请查看本地连接是否正常再运行该程序!!!")
Exit Sub
End If
Shell "route delete 0.0.0.0 "
If Combo1.Text = "赵跃" And Text2.Text = "6565366" Then
Shell "route add 0.0.0.0 mask 0.0.0.0 192.168.1.1", vbHide
temp = Timer
While Timer - temp < 2
DoEvents
Wend
If myping.ping("", 5) = -1 Then
MsgBox "请稍后再拨,网络还未连接成功!!!"
"Shell "route delete 0.0.0.0 "
Exit Sub
End If
上网时长 = 0
Timer1.Interval = 0
Timer2.Interval = 65000
Label3.Caption = "无限上网"
Command4.Enabled = True
Command2.Enabled = True
End If
If Combo1.Text = "周冰瑜" And Text2.Text = "123456" Then
Command4.Enabled = False
Shell "route add 0.0.0.0 mask 0.0.0.0 192.168.1.1", vbHide
temp = Timer
While Timer - temp < 2
DoEvents
Wend
If myping.ping("", 5) = -1 Then
MsgBox "请稍后再拨,网络还未连接成功!!!"
Shell "route delete 0.0.0.0 ", vbHide
Exit Sub
End If剩余时间 = 获得时长()
上网时长 = 0
If 剩余时间 < 1 Then
MsgBox "你已无上网时间"
Shell "route delete 0.0.0.0 ", vbHide
Exit Sub
End If
Command2.Enabled = True
Timer1.Interval = 1000
Timer2.Interval = 65000
End If
End Sub
Sub login()
On Error Resume Next
Shell "route add 0.0.0.0 mask 0.0.0.0 192.168.1.1"
If myping.ping("222.45.29.1", 5) = 0 Then
Shell "route delete 0.0.0.0 "
Exit Sub
End If
Shell "route delete 0.0.0.0 "
myflag = 0
WebBrowser1.Silent = True
"WebBrowser1.Navigate "abount:blank"
WebBrowser1.Navigate "http://111.111.111.1/"
End Sub
Private Sub Command4_Click()
On Error Resume Next
添加时长.Show
End Sub
Private Sub Form_Load()
On Error Resume Next
Command2.Enabled = False
Combo1.Clear
Combo1.AddItem "周冰瑜"
Combo1.AddItem "赵跃"
Combo1.Text = "周冰瑜"
With nfIconData
.hWnd = Me.hWnd
.uID = Me.Icon
.uFlags = NIF_ICON Or NIF_MESSAGE Or NIF_TIP
.uCallbackMessage = WM_MOUSEMOVE
.hIcon = Me.Icon.Handle
"定义鼠标移动到托盘上时显示的Tip
.szTip = "我的拨号程序" & vbNullChar
.cbSize = Len(nfIconData)
End With
Call Shell_NotifyIcon(NIM_ADD, nfIconData)
"=============================================================System Tray End
Me.Hide
myflag = 0
Shell "route delete 0.0.0.0 "
Shell "route add 111.111.111.1 mask 255.255.255.255 192.168.1.1"
Shell "route add 111.208.55.7 mask 255.255.255.255 192.168.1.1"
Shell "route add 222.45.29.11 mask 255.255.255.255 192.168.1.1"
"login
Timer2.Interval = 0
End Sub
Private Sub Timer1_Timer()
On Error Resume Next
"If myping.ping("222.45.29.1", 5) = -1 Then login
st = Int(剩余时间 / 24 / 3600)
sh = Int((剩余时间 - st * 24 * 3600) / 3600)
sm = Int((剩余时间 - st * 24 * 3600 - sh * 3600) / 60)
ss = Int(剩余时间 - st * 24 * 3600 - sh * 3600 - sm * 60)
Label3.Caption = "剩余时间:" + CStr(st) + "天" + CStr(sh) + "时" + CStr(sm) + "分" + CStr(ss) + "秒"
剩余时间 = 剩余时间 - 1
上网时长 = 上网时长 + 1
If 剩余时间 < 1 Then
Timer1.Interval = 0
时长致零
Shell "route delete 0.0.0.0 "
MsgBox "你已无上网时间"
Exit Sub
End If
If 上网时长 >= 60 Then
修改时长 60
剩余时间 = 获得时长
上网时长 = 0
End If
End Sub
Private Sub Timer2_Timer()
On Error Resume Next
myping.ping "222.45.29.1", 5
End Sub
Private Function 获得时长()
On Error Resume Next
获得时长 = 0
Dim rc As New ADODB.Connection
Dim rr As New ADODB.Recordset
rc.Open "Provider=SQLOLEDB.1;Password=****;Persist Security Info=True;User ID=sa;Initial Catalog=网站测试;Data Source=*.*.*.*"
rr.Open "select * from 上网时长", rc, adOpenDynamic, adLockBatchOptimistic
获得时长 = rr.Fields(0)
rr.Close
rc.Close
End Function
Sub 修改时长(时长)
On Error Resume Next
If IsNumeric(时长) = False Then Exit Sub
时长 = Int(时长)
Dim rc As New ADODB.Connection
Dim rr As New ADODB.Recordset
rc.Open "Provider=SQLOLEDB.1;Password=*****;Persist Security Info=True;User ID=sa;Initial Catalog=网站测试;Data Source=*.*.*.*"
rr.Open "update 上网时长 set 时长=时长-" + CStr(时长), rc, adOpenDynamic, adLockBatchOptimistic
rc.Close
End Sub
Sub 时长致零()
On Error Resume Next
" If IsNumeric(时长) = False Then Exit Sub
"时长 = Int(时长)
Dim rc As New ADODB.Connection
Dim rr As New ADODB.Recordset
rc.Open "Provider=SQLOLEDB.1;Password=*****;Persist Security Info=True;User ID=sa;Initial Catalog=网站测试;Data Source=*.*.*.*"
rr.Open "update 上网时长 set 时长=0", rc, adOpenDynamic, adLockBatchOptimistic
rc.Close
End Sub
……
7 结束语
本文首先介绍了目前家庭上网的几种方式,针对这几种方式进行了分析,确定了控制上网的基本方法,然后详细介绍了用vb来实现该功能的源码。该程序采用了众多的技术:1) 首先提出了数据放在外网服务器上,这样就可以实现直接在外网(手机)上控制小孩上网,2) 采用PING测外网技术,如不通,则实现自动拨号,防止程序在外网不通情况下仍然连接外网数据库。3) 采用路由控制的方式控制电脑访问外网,既达到了要求,vb实现也简单方便。
参考文献:
[1] 刘国钧,陈绍业,王涛,等.图书馆目录[M].北京:高等教育出版社,1957:15-18.
[2] 辛西.信息技术与信息服务国际研讨会论文集:A集[M].北京:中国社会出版社,1994.
[3] 钟文发.非线性规划在可燃毒物配置中的应用[C]//赵玮.运筹学的理论与应用--中国运筹学会第五届大会论文集[M].西安:西安电子科技大学出版社,1996:468-471.
[4] 张筑生.微分半动力系统的不变集[M].北京:北京大学数学所,1983.
[5] 冯西桥.LBB分析[R].北京:清华大学核能技术设计院,1997.
[6] 石柱,何新贵.优序法在软件评价中的应用[J].计算机工程与设计,2002,23(2):45-46.
[7] 谢希德.创造学习的新思路[N].人民日报,1998-12-25.
[8] 全国信息与文献工作标准化技术委员会出版物格式分委员会.GB/T 12450—2001 图书书名页[S].北京:中国标准出版社,2002.
[9] 王明亮.关于中国期刊标准[EB/OL].[2007-09-12]..cn/qkpdf/dnjl/dnjl201122/dnjl20112230-3.pdf" style="color:red" target="_blank">原版全文(责任编辑:单位文秘网) )
地址:https://www.kgf8887.com/show-171-68951-1.html
版权声明:
本站由单位文秘网原创策划制作,欢迎订阅或转载,但请注明出处。违者必究。单位文秘网独家运营 版权所有 未经许可不得转载使用