python - 如何为我的 python 应用程序设置试用期?

标签 python kivy setup-deployment

我在 kivy 中制作了一个桌面应用程序,并且能够使用 pyinstaller 制作单个可执行文件(.app)。现在想给客户试用期10天左右。
问题是如何制作一个在安装 10 天后停止工作的试用版,即使用户在试用期结束后卸载并再次安装它也不应该工作。
在试用版中提供部分功能不是一种选择。

环境
带有 Kivy 的 Mac OS 和 Python 2.7

最佳答案

您需要一个 Web 服务器和一个数据库才能使其正常工作。

  • 在您的数据库中创建许可证表。
  • 每次新客户为您的软件付费或要求试用时,您都会生成一个新的长随机许可证,将其插入许可证表中,将其与客户的电子邮件地址相关联,然后通过电子邮件将其发送给客户。
  • 每次客户尝试在他们的计算机上安装软件时,您都会请求许可证并联系网络服务器以确保许可证存在并且仍然有效。

  • 使用它,人们仍然可以创建多封电子邮件,从而可能获得无限数量的试用版。

    然后,您可以尝试在该人的计算机中的某个地方添加一个文件,一个没人会寻找的地方,然后将旧许可证粘贴到那里,这样当应用程序再次启动时(即使是从新安装),它也可以读取许可证从那里联系网络服务器而不要求许可证。使用这种方法,当您的应用程序联系带有过期试用许可证的服务器时,您的服务器可以回复“许可证过期”信号,让您的应用程序知道它现在必须请求非试用许可证,并且服务器应该只从现在开始接受来自该应用程序的非试用许可证。如果您的客户意识到您的应用程序正在从本地文件中获取此信息,则整个方法都会中断,因为他们可以在找到时将其删除。

    想到的另一个想法是将笔记本电脑的 MAC 地址(或您能想到的任何其他唯一标识符)关联到一个许可证而不是电子邮件地址,或者在创建许可证时(客户需要在请求时向您发送他的 MAC 地址)试用版)或在安装时(您的应用程序可以检查运行它的笔记本电脑的 MAC 地址)。

    关于python - 如何为我的 python 应用程序设置试用期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25269845/

    相关文章:

    scrollview - 设置 kivy scrollview effects_cls 属性的正确方法是什么?

    node.js - MongoDB 设置数据库脚本(基于 NodeJS 的项目)

    visual-studio-2010 - 如何在 Visual Studio 中为安装/部署项目配置生成后事件

    python - python urlretrieve通过HTTP下载文件的默认路径

    python - 使用 Box-Muller 方法从正态分布生成值

    python - 更改一系列数据框中元素的值python

    python - 在 anaconda 上安装 kivy 时出现 PermissionError(13, 'The process cannot access the file because it is being used by another process' )

    python - 如何找到具有不同特征值的两个矩阵的公共(public)特征向量

    python - 添加使用 Builder.load_string() 创建的小部件后,为什么没有捕获这个 kivy 错误?

    ruby-on-rails - 多台服务器还是一台服务器中的所有内容?