我真的想使用inno设置或其他类似软件来制作“专业”安装程序,其中应用程序通过许可证密钥或串行分发,我想确保安装程序只能安装一次在给定的机器上。这是为了防止人们从安装文件夹中复制文件并将其粘贴到另一台计算机中。我已经阅读了很多这方面的主题,但它始终是相同的,only 1 key for an installer
这意味着它可以使用相同的密钥安装多次。
我曾尝试使用inno安装程序直接锁定我的应用程序,通过设置主板ID检查,但这不是我想要的方式,并且设计不完美。这是因为软件可以有多个有效密钥,但是当有人使用密钥时,密钥就不再有效了。
答案 0 :(得分:1)
如果您不知道它将运行什么计算机,则在编程阶段,您可以通过在代码开头的IP地址显式检查来轻松限制其他计算机。
如果您不知道它将是哪台计算机,但只是在第一台计算机上运行它,您应该保存一个内部资源文件,它已经运行过一次。写入内部资源可能有点复杂。
在任何情况下,限制为一次使用,也可以使用内部资源解决方案,但是如果您不需要它(比如,您知道它将在哪台计算机上运行),您可以使用首选项:
// in the beginnig of your main
if(Preferences.get("myapp.usedonce") != null)
return;
// at the end of main
Preferences.put("myapp.usedonce", "yes");