用VB“破解”有时间限制的程序

VB“破解”有时间限制的程序

张 胜
--------------------------------------------------------------------------------


你是否经常遇到有时间限制的程序?我等懒人尤其对此特别反感,可惜囊中羞涩,只好反复修改其系统日期而使自己多用几次此软件——实在是辛苦!于是使用“Anyday32”,可惜也太麻烦了;再后使用“时光倒流”,也不好用,而且——居然还有Bugs!......看样子只好自己动手做“VB软件DIY”了。
一、问题所在
有时间限制的程序大都是依靠在启动过程中检测系统日期,再与其记录的第一次使用日期(放于 注册表或特殊文件中)进行对比检测是否试用期已到,若试用期已到,可能会在注册表中作一定的标记,使下次程序不可用。
二、解决问题
我们一般可以通过修改系统时间来使用此类程序,当然在其作过过期标志后可能此“大法”就无效了;也有一些程序的检测细化到了小时,那我们只能将时间也一块改了。
三、DIY中的思路及注意事项
我们可以在自己的程序中先修改系统日期,再启动相应的有时间限制的程序,过一段时间后再将系统日期改回来。
注意:在等待外部程序检测系统日期的等待过程中,系统日期已经改变,那么我们改回的系统日期将是错误的!因此我们要进行一定的检测,以防止此类错误的发生。
四、开始软件DIY
这里我们为方便控制,使用 Access数据库进行软件编制。
数据库中表的 设计
字段名
类型
长度
备注

程序名称
Text
20
程序的标识,以便于管理

启动程序
Text
255
实际启动的程序

启动日期
Date/Time
8
应改回的系统日期


窗体及控件设计:  
名称
类型
设置

Form1
窗体
BorderStyle=1

Command1
command
Caption="执行(&R)"

Command2
command
Caption="退出(&Q)"

Check1   
CheckBox
Caption="启动程序后自动关闭本软件"

Timer1
Timer
Enabled=False;Interval=5000

Data1
Data
DatabaseName=数据库路径及名称

RecordSource=数据表名称

CommonDialog1
CommonDialog
Filter="请选择您想要启动的程序 (*.*)"

DBGrid1
DBGrid
AllowaddNew=True;AllowDelete=True;DataSource=Data1


CommonDialog和DBGrid控件需要另外加载,其中还需在DBGrid的属性页中进行一定的数据库挂接和设置,要在其属性页中“布局”中的第二列的“按钮”选中。
以下是本小软件的源代码:
Option Explicit
注释:启动外部应用程序的API函数定义
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Dim OldDate As Date 注释:保存系统日期

Private Sub Command1_Click()
If Not Data1.Recordset.EOF Then 注释:若数据库正在添加记录则不动作
Date = Data1.Recordset(2) 注释:改系统时间
Call ShellExecute(0, vbNullString, Data1.Recordset(1), vbNullString, vbNullString, vbOK) 注释:启动外部程序
Me.Enabled = False 注释:屏蔽其他操作
Timer1.Enabled = True 注释:启动延时记时器
End If
End Sub

Private Sub Command2_Click()
End 注释:关闭本系统
End Sub

Private Sub DBGrid1_BeforeUpdate(Cancel As Integer)
If MsgBox("记录改变吗?", vbYesNo + vbQuestion) <> vbYes Then Cancel = True 注释:是否更新数据库控制
End Sub

Private Sub DBGrid1_ButtonClick(ByVal ColIndex As Integer)
On Error GoTo errdeal 注释:打开错误监测
CommonDialog1.CancelError = True 注释:系统对话框错误控制
CommonDialog1.ShowOpen 注释:打开系统对话框
If CommonDialog1.filename <> "" Then DBGrid1.Text = CommonDialog1.filename 注释:写入要启动的程序信息
errdeal:
End Sub

Private Sub Form_Load()
OldDate = Date 注释:保存系统时间
Call Parameter 注释:获取系统启动时的参数
End Sub

Private Sub Timer1_Timer()’五秒钟后恢复
If Format(Time, "HH:MM:SS") < "00:00:05" Then OldDate = OldDate + 1 注释:防止在接近零时时的日期恢复错误
Date = OldDate 注释:恢复系统时间
Me.Enabled = True 注释:恢复正常操作
Timer1.Enabled = False 注释:屏蔽延时记时器
If Check1.Value = 1 Then End 注释:是否关闭本系统
End Sub

Private Sub Parameter() 注释:系统参数处理
If Command <> "" Then
注释:查找相应的启动程序
Data1.RecordSource = "Select * From [StartProgram] Where [程序名称]=注释:" & Trim(Command) & "注释:"
Data1.Refresh
If Not (Data1.Recordset.EOF And Data1.Recordset.BOF) Then
Me.Hide 注释:隐藏本系统
Check1.Value = 1 注释:设置关闭标志
Command1_Click 注释:激活本系统的执行事件
Else
注释:未找到处理
MsgBox "没有此启动程序!", 16, Me.Caption 注释:错误提示
End 注释:关闭
End If
End If
End Sub
五、小 结
本小软件可启动多个有时间限制的程序,也可以通过命令参数(格式是:本程序名 要启动的程序名称)一次启动一个程序,可用于作相应的快捷方式(和Anyday32类似),让你放心去使用。
程序编完了,但还需你的完善和润色,遇到问题自己解决——我是软件DIY人!

转载于:https://www.cnblogs.com/tanghuawei/archive/2007/01/12/618896.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VB.NET 是一种流行的编程语言,可用于开发各种类型的应用程序,包括编辑时间限制的软件。 编辑时间限制的软件是一种常见的解决方案,用于控制用户在特定时间段内访问和编辑文件的能力。该软件通常用于保护敏感信息或限制共享资源的使用。 在 VB.NET 中,我们可以使用不同的方法来实现编辑时间限制的功能。以下是一个简单的示例: 1. 首先,我们需要一个计时器来跟踪用户的编辑时间VB.NET 提供了计时器控件(Timer Control),我们可以将其拖放到窗体上。 2. 然后,我们需要定义一个时间限制,例如每天允许用户编辑文件的时间总量。我们可以使用 VB.NET 的日期和时间函数来计算用户已经编辑的时间量。 3. 在用户打开文件进行编辑之前,我们可以检查当前时间是否超出了允许的编辑时间范围。如果超出了限制,则可以弹出一个警告消息或禁止用户编辑文件。 4. 当用户结束编辑并保存文件时,我们需要更新计时器并记录他们的编辑时间。这可以通过在文件关闭事件中编写逻辑来实现。 5. 最后,我们还可以添加其他功能,例如提供设置编辑时间限制的选项,以及生成编辑报告来跟踪用户的编辑行为。 使用 VB.NET 和以上方法,我们可以开发出一个功能强大的编辑时间限制软件。该软件可以帮助用户管理他们的时间,并保护敏感信息免受未经授权的访问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值