我的地盘我做主
2006年05月29日设计代码

没有评论
28 views

用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中调试通过。其实通过这个小程序可以看出,很多的实用小软件都源于我们日常生活中的一些小问题,只要你善于发现和思考,相信你也一样能够做到。

2006年05月11日琐碎心情

没有评论
23 views

几天没看自己的BLOG,吓我一跳

发现垃圾广告性的评论特多
还好LOVEYUKI的BLOG有防的方法
空间都被占满了,真是郁闷
广告竟然达到1000多,比偶发的日志还多,会员200多,访问30多万,数据库达到18多M,我的空间就10M,想不通了

最近发生太多的事情,唉~~~~~~~~~~~~~~~
感觉放弃QQZONE,赶紧做自己的BLOG好点

以下是引用:http://www.5icafe.com/blogview.asp?logID=231

最近有某些素质极差的人疯狂的用一款叫款叫 博客群发王 软件,到处散播垃圾广告。已经引起了blogger的公愤。警告某些垃圾制造者,再不住手,惹上官司可不是好玩的。估计垃圾制造者已经开始抓狂了发不了垃圾链接,干脆对本站进行垃圾文字留言。很不幸,隅又更新了,增加了黑名单功能。看来这些死缠烂打的垃圾制造者要黔驴技穷了

目前很多开发者的网站都已经有了对应办法。
L-Blog1.08用户可以到开发者loveyuki网站速打补丁:http://www.loveyuki.com/blogview.asp?logID=1012
PJblog^2用户可以到番茄的网站速打补丁:http://www.tblog.com.cn/

博客群发王 我没有办法获得,不知道它究竟通过什么办法绕过了注册码验证。补丁可以屏蔽这个软件发送的大量垃圾评论。但L-Blog1.08的补丁似乎还是没有办法彻底禁止垃圾散播者粘贴网址,只能去除链接。Evan( http://www.fir8.net )的版本有过一个屏蔽无聊链接的函数,可以用到评论模块中来。可以进一步限制评论中的垃圾链接。而黑名单功能源于 路痴心的轨迹(http://www.52ju.com/)可以通过黑名单限制评论内容。在此感谢以上二位了。
另外还有一种办法(我认为效果应该也不错):参见 http://www.31fei.com/blog/blogview.asp?logID=131&cateID=0

我的代码具体如下: 本方法仅适用于L_blog1.08
1.在 Function.asp 增加 Check_rubbish 函数
程序代码:
‘屏蔽黑名单中内容
Function Check_rubbish(msg_str)
Dim r,char
char=split(rubbish,”,”)’逗号表示分隔符
Check_rubbish = true
For r = 0 to ubound(char)
If instr(lcase(msg_str),lcase(char(r)))>0 Then
Check_rubbish = false
Exit Function
End If
Next
End Function

2.在 commond.asp 增加变量(不要怪我下手狠,超过一个链接的评论都会被限制)程序代码: [ 复制代码 ]
‘定义留言或评论URL数量
Dim MaxUrl,MaxHttp,Max3W
IF session(“memStatus”)<>“Admin” AND session(“memStatus”)<>“SupAdmin” Then
MaxUrl=1 ‘最多可以在一个评论中加多少个 [url ]
MaxHttp=1 ‘最多可以在一个评论中加多少个 http://
Max3W=1 ‘最多可以在一个评论中加多少个 www
Else
MaxUrl=50
MaxHttp=50
Max3W=50
End IF
‘定义黑名单
Dim rubbish
rubbish=”色情电影,www.466sf.com”

3.在 blogcomm.asp Form内容提交检查代码段 加入 以下判断分支代码
程序代码: [ 复制代码 ]
‘屏蔽垃圾留言(2006/04/20)
ElseIF Strurls(Request.Form(“message”),”[url")>MaxUrl or Strurls(Request.Form("message"),"http://")>MaxHttp or Strurls(Request.Form("message"),"www")>Max3W or Check_rubbish(CheckStr(Request.Form("message")))=False Then
msg_Title="出现错误"
msg_Content="垃圾广告 -> 滚!"

有些朋友称加了代码后出错/无效。实际上是把代码加错地方了。
*表格内容提交检查代码段指的是从以下这段开始,至于你愿意加在哪一项检查判断之后,那是你自己安排的事了。
程序代码: [ 复制代码 ]
IF CheckStr(Request.Form(“message”))=Empty OR CheckStr(Request.Form(“comm_memName”))=Empty Then

加上黑名单后垃圾制造者就不可能屡次得手了。效果好不好呢,静待其变。隅做支撑的,有的就是耐心。

返回顶部