我有一个用VB6编写的软件产品。它是一个付费软件产品,它有一个月的演示版。演示版没有单独的安装文件。输入产品密钥的软件将演示转为完整版。我曾经在注册表中写入信息来跟踪演示版本的1个月,之后该软件将无法运行。此外,如果Windows用户不是管理员,则无法将注册表写入HKLM。如果我将注册表写入HKCU,则用户可以创建新用户并通过安装来重用该软件。那么如何将演示版本管理到1个月,用户在1个月内无法使用它而无需购买密钥?
答案 0 :(得分:2)
我原以为您需要创建一个许可证密钥文件并将其与.exe文件一起存储。它应该以某种方式加密,并保存创建时间和机器等的详细信息。您可以绕过它,但它肯定足以满足您的要求。
答案 1 :(得分:1)
如果您担心用户创建新用户帐户以重新启动演示,那么您需要写入全球位置。 如果您在设置过程中设置了适当的位置,则可以将HKLM作为标准写入。
请注意,如果用户能够/愿意每30天创建一个新的用户帐户,那么任何注册表项都不会阻止它们。
没有中央激活服务的最佳选择是以一些重要的方式来演示版本以阻止它们长时间使用。
我们的软件演示版在30分钟后关闭,但他们可以注册一个(过时的)试用密钥,允许完全访问,并在到期时回退到演示版。
答案 2 :(得分:0)
最好的方法是让您的软件连接到您的服务器,并在那里注册其安装日期,并让它在每次启动时连接到您的服务器
这要求您的软件可以访问您的服务器,因此它可能应该具有互联网访问权限,这可能并非总是如此
此方法的另一个优点是您的软件可以检查服务器上的可用更新
答案 3 :(得分:0)
您可以让应用程序检查应用程序exe的文件比例,并将其与当前日期/时间进行比较
当然,用户可以随时设置他的日期/时间,然后安装您的应用程序,或者在当前日期/时间安装它,并在运行之前将其日期/时间更改为过去
我不知道你的应用程序是否可以访问它自己的属性,但是当我运行exe并在文本框中单击时运行它会提供一些数据:
'1 form with
' 1 textbox : name=Text1 multiline=true
Option Explicit
Private Sub Form_Resize()
Text1.Move 0, 0, ScaleWidth, ScaleHeight
End Sub
Private Sub Text1_Click()
Dim intFile As Integer
Dim strFile As String
Dim lngSize As Long
Dim dateMod As Date
Dim fs As New Scripting.FileSystemObject
Dim f As File
Text1.Text = ""
' length of file
strFile = App.Path & "\FileProp.exe"
intFile = FreeFile
Open strFile For Input As #intFile
lngSize = LOF(intFile)
Close intFile
Text1.SelText = "LOF : " & CStr(lngSize) & vbCrLf
' last modified
dateMod = FileDateTime(strFile)
Text1.SelText = "FileDateTime : " & CStr(dateMod) & vbCrLf
' filesystemobject
Set f = fs.GetFile(strFile)
Text1.SelText = "fs.DateCreated : " & f.DateCreated & vbCrLf
Text1.SelText = "fs.DateLastAccessed : " & f.DateLastAccessed & vbCrLf
Text1.SelText = "fs.DateLastModified : " & f.DateLastModified & vbCrLf
End Sub