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

原创 2001年03月29日 01:21:00

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


张 胜

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

字段名<?XML:NAMESPACE PREFIX = O />

类型

长度

备注

程序名称

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人!

VB程序打包方法

VB学习已经有很长一段时间了,在马上就迎来的作品展中,相信大家的作品也接近了尾声,VB程序的最后一步就是打包发布,对此,我遇到了很多问题,我找到了两个解决的方法。利用VB本身提供的打包程序可以实现打包...
  • lu930124
  • lu930124
  • 2013年04月24日 21:15
  • 5077

刷票大战(一)——突破IP限制

前言:女朋友
  • harvic880925
  • harvic880925
  • 2014年06月10日 14:01
  • 16187

VB 执行其他程序并等待其结束

VB 执行其他程序并等待其结束           近期在编写程序过程中用Winrar中的DOS程序rar.exe 对.Rar文件进行处理,并将结果写入一个文件,后面的程序将此文件用RichTex...
  • whchensir
  • whchensir
  • 2013年05月17日 22:14
  • 1367

KODExplorer 修改成VPS管理程序

最近买了一个VPS主机,准备长期使用。但总感觉使用起来特别不顺手。不喜欢用FTP软件,所以想找一个在线管理文件的东东。找了好久,终于找到一款KODExplorer的软件,软件开源,仿Windows 的...
  • freelysuiyi
  • freelysuiyi
  • 2014年03月14日 17:04
  • 3961

VB与PLC的通讯程序的程序,最常用的是VB

LAD适用于逻辑关系较复杂的过程控制,STL的强处在于寻址与优化程序。 在S5里,有功能块(FB)与顺序控制块(PB)之分,大多数情况下PB调用FB。其中FB多用STL编写,PB多用LAD。 S7...
  • u013742943
  • u013742943
  • 2014年02月27日 01:40
  • 602

【转】在网页中运行VB6程序

用VB6做的程序在网页里运行, 需要把程序做成OCX格式,下面简单做一介绍: 首先新建一个工程, 选择ActivX控件:    然后添加控件和代码:     然后F5运行      ...
  • huanzx
  • huanzx
  • 2017年06月15日 18:08
  • 279

VC,VB程序按钮、图标样式美化

此处的“美化”指的不是通过代码进行美化你的程序。关于想进一步优化自己的程序界面的,不妨去了解下SkinSharp吧。本文提及的是利用第三方资源编辑软件在不更改程序任何框架和代码的前提下实现对界面的简单...
  • ROVAST
  • ROVAST
  • 2014年06月09日 09:00
  • 3479

【原创】VB6.0应用程序安装包的生成(Setup Factory 9.0制作安装包的方法)

VB6.0应用程序安装包的生成,利用其自带的打包工具生成的安装程序很简陋,一点不美观;如果想让自己的应用程序安装的时候显得高大上一点,本教程提供使用Setup Factory 9.0制作安装包的方法。...
  • huanzx
  • huanzx
  • 2017年06月15日 18:06
  • 305

vb读取WPS的EXCEL文档并另存为其他

Dim xlApp Dim xlApp2 Dim xlBook Dim xlBook2 Dim xlSheet Dim xlSheet2 Dim getPath Dim savePath...
  • sofeien
  • sofeien
  • 2014年10月13日 15:20
  • 1907

VB调用C#写的WinForm.NET控件

一.前言:   虽然IT开发技术日新月异,不过业界仍然运行着大量的VB系统,这些系统凝聚了不少客户的投资,应当要一定程度的保护和利用。因此也就产生了一种需求,也就是使用旧的开发技术仍然可以使用新技术...
  • ddjj_1980
  • ddjj_1980
  • 2013年04月09日 16:08
  • 1784
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用VB“破解”有时间限制的程序
举报原因:
原因补充:

(最多只允许输入30个字)