我正在尝试为我的应用程序创建一个基本的试用期方法,添加一个不可见的注册表项,并拒绝用户删除该值,但我不知道如何拒绝用户权限,如“SetACL.exe”工具
这是我的代码:
Dim _0day As String = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("0")) ' MA==
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\MyApplication", _
"¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?", _
_0day, _
Microsoft.Win32.RegistryValueKind.String)
' Next step:
' Deny user acces (Delete/Modify) to that value (not to the entire key).
更新
试过这个,但它没有做任何事情,它运行没有错误,但不否认权限。
Dim f As New RegistryPermission(RegistryPermissionAccess.NoAccess, "HKEY_CURRENT_USER\Software\MyApplication")
f.Deny()
答案 0 :(得分:2)
正如建议一样,为什么不使用有效加密值的密钥创建用于将应用程序安装在用户计算机上作为试用版的密钥,而不是创建密钥来识别应用程序是否已获得许可?这样,如果用户删除或修改了密钥,您的应用就会以试用模式运行。
并确保加密的密钥值对于用户的计算机是唯一的,这样当密钥被复制到另一台计算机时,它将无法正常工作。
答案 1 :(得分:1)
使注册表值成为试用开始的日期,并结合硬件ID并加密。
将许可值设为过去日期(如1/1/1900)。