用VB设计控制上网时间程序

发表于:2007-05-25来源:作者:点击数: 标签:设计程序可能有上网时间
可能有许多跟我一样用小猫上网的朋友都有过这样的烦恼,那就是每个月不得不面对的超额上网费用,特别是对于我们这种穷学生和工薪阶层的人来说。为了改变这种现状,我便用 VB 编了一个控制上网时间的小软件,其实原理很简单,就是根据自己设置的时间自动连通
  可能有许多跟我一样用小猫上网的朋友都有过这样的烦恼,那就是每个月不得不面对的超额上网费用,特别是对于我们这种穷学生和工薪阶层的人来说。为了改变这种现状,我便用VB编了一个控制上网时间的小软件,其实原理很简单,就是根据自己设置的时间自动连通网络和强制切断网络。好了,废话少说,那就让我们开始吧。

  一、添加控件并修改属性

  首先打开VB,建立一个EXE文件,在该窗体上放置控件如下:三个Label控件,标题分别为"当前时间"、"欢迎你使用网络设置"和"使你能够轻松控制上网"。三个Button控件,标题分别为"确定"、"取消"和"立即登陆"。三个Text控件,两个Check控件,标题分别为"上网时间"和"下网时间",Value的值都为1,就是被选中状态,最后是两个Timer控件,Timer1的Enabled值为True,Timer2的为False,两个的Interval值都为1。调整好后如图所示。



  二、编写代码

  为实现网络的连接和断开需要在程序开头声明以下函数:

Const INTERNET_DIALSTATE_DISCONNECTED = 1
Const INTERNET_AUTODIAL_FORCE_ONLINE = 1
Const INTERNET_AUTODIAL_FORCE_UNATTENDED = 2
Const INTERNET_DIAL_UNATTENDED = &H8000
Dim iHandle As Long
Private Declare Function Inte.netDial Lib "wininet.dll" ( _ByVal hwndParent As Long, _ByVal lpszConnectoid As String, _ByVal dwFlags As Long, _lpdwConnection As Long, _ByVal dwReserved As Long) As Long

  参数dwConnection指定拨号连接句柄

Private Declare Function InternetHangUp Lib "wininet.dll" _
(ByVal dwConnection As Long, _
ByVal dwReserved As Long) As Long

Private Declare Function InternetAutodial Lib "wininet.dll" _
(ByVal dwFlags As Long, ByVal dwReserved As Long) As Long

Private Declare Function InternetAutodialHangup Lib "wininet.dll" _
(ByVal dwReserved As Long) As Long

Private Sub Check1_Click()
判断用户的选择
If Check1.Value = 0 Then
Text2.Enabled = False
Check2.Value = 0
Else
Text2.Enabled = True
End If
End Sub

Private Sub Check2_Click()
判断用户的选择
If Check2.Value = 0 Then
Text3.Enabled = False
Else
Text3.Enabled = True
End If
End Sub

Private Sub Command1_Click()
使设置生效并显示设置信息
Dim alert1, alert2
If Check1.Value = 1 And Check2.Value = 1 Then
If Not IsDate(Text2.Text) Or Not IsDate(Text3.Text) Then
MsgBox ("你输入的不是时间格式,请重试!")
Else
alert1 = Text2.Text
alert2 = Text3.Text
Label2.Caption = "注意:计算机将在" + Text2.Text + "登陆网络"
Label3.Caption = "注意:计算机将在" + Text3.Text + "断开网络"
Timer1.Enabled = True
End If
Else
If Check1.Value = 1 Then
If Not IsDate(Text2.Text) Then
MsgBox ("你输入的不是时间格式,请重试!")
Else
alert1 = Text2.Text
Label2.Caption = "注意:计算机将在" + Text2.Text + "登陆网络"
Timer1.Enabled = True
End If
End If
End If
End Sub

Private Sub Command2_Click()
取消设置并显示取消信息
If Check1.Value = 1 And Check2.Value = 1 Then
Text2.Text = "00:00:00"
Text3.Text = "00:00:00"
Timer1.Enabled = False
Label2.Caption = "注意:你已取消了定时登陆网络"
Label3.Caption = "注意:你已取消了定时断开网络"
Else
If Check1.Value = 1 Then
Text2.Text = "00:00:00"
Timer1.Enabled = False
Label2.Caption = "注意:你已取消了定时登陆网络"
End If
End If
End Sub

Private Sub Command3_Click()
这里默认以163拨号方式实现登陆,其它拨号方式只需修改一下参数就可以了。
InternetDial Me.hWnd, "163", INTERNET_AUTODIAL_FORCE_UNATTENDED, iHandle, 0
End Sub

Private Sub Form_Load()
初始化上网和下网的时间格式
Text2.Text = "00:00:00"
Text3.Text = "00:00:00"
End Sub

Private Sub Timer1_Timer()
根据用户的选择来判断实现定时上下网
Dim A
If Check1.Value = 1 And Check2.Value = 1 Then
Text1.Text = Time
A = TimeValue(Text1.Text)
If Text2.Text = A Then
InternetDial Me.hWnd, "163", INTERNET_AUTODIAL_FORCE_UNATTENDED, iHandle, 0
Else
If Text3.Text = A Then
If iHandle <> 0 Then
InternetHangUp iHandle, 0
iHandle = 0
End If
End If
End If
Else
If Check1.Value = 1 Then
Text1.Text = Time
A = TimeValue(Text1.Text)
If Text2.Text = A Then
InternetDial Me.hWnd, "163", INTERNET_AUTODIAL_FORCE_UNATTENDED, iHandle, 0
End If
End If
End If
End Sub

Private Sub Timer2_Timer()
显示当前时间
Text1.Text = Time
End Sub

  以上就是程序的全部源代码,编译后就是一个简单控制上网的小软件,操作简单,非常实用,以上程序在Windows98+VB6.0中调试通过。其实通过这个小程序可以看出,很多的实用小软件都源于我们日常生活中的一些小问题,只要你善于发现和思考,相信你也一样能够做到。

原文转自:http://www.ltesting.net