top
Loading...
用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 InternetDial 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.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗