首页 用vba限制非注册软件应用时间[新版]

用vba限制非注册软件应用时间[新版]

举报
开通vip

用vba限制非注册软件应用时间[新版]用vba限制非注册软件应用时间[新版] 用VBA限制非注册软件使用时间 用VBA限制非注册软件使用时间 江苏无锡市 李激扬 ---- 对于共享软件来言,在软件未注册时仅提供有限时间和有限次数的使用权限,当超过使用期限,程序给出提示信息并关闭程序。在EXCEL中如果你用宏进行了两次开发,你希望使此开发程序在时间和次数上对非注册用户有所限制,那么不妨试一下以下方法。 ---- 1、在工作簿中新建一工作表,本文命名为"时间次数限制"表。 ---- 2、在"时间次数限制"表单元格IV65536键入 = TODA...

用vba限制非注册软件应用时间[新版]
用vba限制非注册软件应用时间[新版] 用VBA限制非注册软件使用时间 用VBA限制非注册软件使用时间 江苏无锡市 李激扬 ---- 对于共享软件来言,在软件未注册时仅提供有限时间和有限次数的使用权限,当超过使用期限,程序给出提示信息并关闭程序。在EXCEL中如果你用宏进行了两次开发,你希望使此开发程序在时间和次数上对非注册用户有所限制,那么不妨试一下以下方法。 ---- 1、在工作簿中新建一工作表,本文命名为"时间次数限制"表。 ---- 2、在"时间次数限制"表单元格IV65536键入 = TODAY();在单元格IV65533键入1;(可按"Ctrl+向下键"即可到IV65536) ---- 3、打开 Visual Basic 编辑器,在当前工作簿新建一模块,在代码窗口输入如下代码:(可不输入插入在程序内的解释语句) Option Explicit Const Degree As Integer = 30 'Degree 是程序使用次数的限制常量 Const Time As Integer = 30 'Time 是程序使用时间的限制常量 Sub auto_open() //auto_open()程序每次启动时自动运行 Dim I As Integer //当前程序的使用次数变量 Dim ThisTime As Long //当前程序使用时间变量 Dim LastTime As Long //上次程序使用时间变量 Dim Comp As Long //时间比较变量 ActiveWindow.WindowState = xlMinimized //最小化当前程序窗口 Application.ScreenUpdating = False //宏执行时,屏幕冻结 Sheets("时间次数限制").Visible = xlSheetVisible //使"时间次数限制"表可见 Sheets("时间次数限制").Select I = Sheets("时间次数限制").Range("IV65533").Value //读取保存在表"时间次数限制"中的程序的使用次数的值 If I = 1 Then Sheets("时间次数限制").Range("IV65536").Select Selection.Copy Sheets("时间次数限制").Range("IV65535").Select Selection.PasteSpecial Paste:=xlValues Sheets("时间次数限制").Range("IV65534").Select Selection.PasteSpecial Paste:=xlValues Application.CutCopyMode = False Else Sheets("时间次数限制").Range("IV65536").Select Selection.Copy Sheets("时间次数限制").Range("IV65535").Select Selection.PasteSpecial Paste:=xlValues Application.CutCopyMode = False //将单元格IV65536中的当前时间以纯数字形式粘贴至 单元格IV65535 ThisTime = Sheets("时间次数限").Range("IV65535") LastTime = Sheets("时间次数限制").Range("IV65534") Comp = ThisTime - LastTime If Comp < Time And I < Degree And Comp > -1 Then Sheets("时间次数限制").Range("IV65536").Select Selection.Copy Sheets("时间次数限制").Range("IV65534").Select Selection.PasteSpecial Paste:=xlValues Application.CutCopyMode = False //将单元格IV65536中的当前时间 以纯数字形式粘贴至单元格IV65534 Else //当程序在超过使用期限或使用次数时提示用户, 并关闭工作簿,退出程序 MsgBox "您已超过了未注册软件的使用时间~" Sheets("时间次数限制").Visible=xlSheetVeryHidden ActiveWorkbook.Close SaveChanges:=False Exit Sub End If End If I = I + 1 Sheets("时间次数限制").Range("IV65533").Value = I //累加程序使用次数并回传至将单元格IV65533 Sheets("时间次数限制").Visible = xlSheetVeryHidden //使"时间次数限制"表用户不可见 ActiveWorkbook.Save //保存当前活动工作簿 Application.ScreenUpdating = False //激活窗口 ActiveWindow.WindowState = xlMaximized //最大化当前程序窗口 End Sub ---- 4、在Visual Basic 编辑器的项目窗口单击"时间次数限制"表, 在属性窗口中的Visible选择xlSheetVeryHidden。 ---- 5、在Visual Basic 编辑器的项目窗口右键点击VBAProject,选择VBAProject(属性)...,在保护标签中选中"查看时琐定工程"并在密码和确认密码中键入8位以上的密码。(不易被解密软件破译) ---- 6、保存本工作簿,退出即可。 ---- 从安全的角度分析以上步骤,如果使用者修改系统时间,将时 间恢复至安装软件之日,由于和最近软件使用时间相比为负值仍不能 正常使用,另外对于使用次数又有逐次累计不可能被修改. ---- 如果使用者打开程序时按住"Shift"键,阻止auto_open宏的运 行的话,由于任何一次打开程序时,填写使用次数和使用时间变量的 工作表都处于" xlSheetVeryHidden"状态,在此状态下不可以从取消 隐藏工作表的方法予以显示工作表,唯一显示工作表的途径 VBAProject又被加密(一旦解密由于使用次数和使用时间变量的单 元格位于工作表底端不易被发现).也不易被使用者修改,更何况在 此种状态下所有宏程序都将被终止。充分保护了软件的使用权限。