我在客户的网站上的多台计算机上安装了一个软件产品。该软件访问位于服务器上的数据库。
我已经给了他们一个MSI,以便他们可以在需要时在其他机器上安装该软件。
如何以编程方式对可以安装软件的计算机数量设置限制?
该软件之前在HKLM注册表项中放置了一个值,但Vista和Win 7不允许将HKLM密钥写入,所以我现在打算如何监控安装?
答案 0 :(得分:1)
Symantec客户端管理套件和服务器管理套件等产品可让您通过网络对所有软件进行软件许可管理。见here。虽然,我担心,它们是企业产品,可能会花费这么多钱。我实际上在努力开发它们。
答案 1 :(得分:1)
您可能应该让您的旧版应用UAC知道(例如Microsoft instruction for application developers on Vista,Code Project tutorial)并请求其特殊权限,以继续使用HKLM或同等版本。一旦您的程序具有适当的权限(例如管理员),它应该能够像在传统Windows中一样在UAC环境中继续运行。
一个副作用是非管理员无法正确安装您的程序,但这在Window Vista的“新世界”中并不常见,7以及未来的一切。看起来“每个人都是管理员”的理念并没有回归。
(注意:我使用术语“管理员权限”,但表示完成工作所需的最低权限。)
当我在引号中看到这样的警告时,可能需要一些工作:
高程程序 安装程序有点太复杂了 在这里详细说明,但要注意 那个requiresAdministrator标志 实际上并不是MSI包 提供完整的管理员 权限。这实际上表现得很好 略有不同,并作为一个 除非完全特权的子集 你使用一个bootstrapper来获得满满的 海拔。安装人员很少见 需要这些额外的令牌 作为安装程序的管理员 权限通常就足够了。
好处是,一旦您转换了一个应用程序,您将拥有相应升级其他程序的知识和代码库。
我相信其他人会建议令人满意的代码解决方法,并且可能不会使用HKLM。