我对获取版本信息不感兴趣。我所要做的就是确保我的应用程序只能在正版Windows上运行,而不能在盗版版本上运行。Windows使用了一些技巧来确定这一点,但仍然允许盗版版本继续运行,尽管有一些限制。
那么,有没有办法检查该应用程序是否安装在合法的正版Windows版本上?(至少是Vista和更好的版本。)
让我澄清一点:微软并没有阻止用户使用未经验证或非法的操作系统版本。因此,我也没有任何理由在这样的版本上阻止我的应用程序。但我确实希望我的应用程序知道非法版本,并警告用户他的Windows版本没有经过验证。也许他忘了,也许他不想验证。这可能有很多原因,我不想阻止他们,只是让他们意识到他们的Windows版本存在问题。
此外,当有人使用无效的Windows版本时,如果我自己的软件是商业产品,那么我可能想要对其进行更严格的验证检查。在我的免费产品中,我只想要一个恼人的弹出窗口,它每天只会出现一次。
未经验证的Windows版本的主要问题是,它们可能包含额外的间谍软件和其他恶意软件,并且有可能无法获得所有必需的更新。与经过验证的Windows版本相比,这些Windows版本的保护较弱。由于我的几个应用程序使用敏感数据,我不希望任何恶意软件泄漏这些敏感数据。
另外,我认为盗版软件对任何免费的替代品都是有害的。如果不是因为到处都是盗版的FreeBSD版本,Linux和windows会更受欢迎。使用盗版软件的人不太可能一开始就购买该产品,但我更希望他们使用免费的替代品。盗版软件对微软有一点伤害,但它对自由社区的伤害更大,因为它让人们与这些商业产品保持联系……
发布于 2009-09-22 11:24:53
即使是微软也不能可靠地做到这一点。这是一场持续不断的军备竞赛,因为微软更新了WGA,对抗那些似乎只需做很少事情就能绕过它的人。OEM的需求加剧了这一点,他们(正确地)需要预先安装和预先验证OSs的副本,这样他们就不会惹恼他们的客户,这些客户很可能是商业客户。我认为围绕这一点的许多“黑客攻击”都与OEM主密钥有关。
基本上,盗版软件(包括Windows和你的软件)是一个社会问题,而不是一个技术问题。作为一个软件供应商(imho),你能做的最糟糕的事情就是为了阻止盗版而惹恼你的合法客户,以至于你让你的合法客户成为盗版。例如:一些游戏已经到了安装rootkit以及限制激活次数的地步(例如孢子)。
限制激活尤其是一种邪恶的做法。人们对这些事情有一种与生俱来的公平感。如果他们有两次激活,运行Windows XP并切换到Windows7RC,然后在发布时切换到真正的Windows7版本,那么他们就超过了限制。与孢子的情况一样,你可以通过电话请求额外的激活,但这种事情只会让人反感。有些人会觉得绕过这些限制是很有道理的。
至于否决你的问题,我怀疑这是因为人们不喜欢你的意图,可能是出于类似于我上面列出的原因。
发布于 2009-09-22 08:59:51
这是一个有趣的问题,但态度是错误的。检查用户的事务不关你的事。
或者你也可以这样做:
你明白事情的发展方向了吗?
开发软件的关键规则之一-你的软件应该是有用的,让用户满意,并建立尽可能少的障碍。
发布于 2009-09-22 09:02:19
你不可能知道,你也不应该关心。
安装的合法状态与磁盘上的任何内容完全无关。相同的安装现在可以取消许可,并在下一分钟获得许可,而无需对计算机进行任何更改。
https://stackoverflow.com/questions/1458896
复制相似问题