我对获取版本信息不感兴趣。 我所要做的就是确保我的应用程序只能运行在合法的Windows版本上,而不是盗版版本。 Windows使用一些技巧来确定这一点,但仍然允许盗版版本继续运行,尽pipe有一些限制。
那么,有没有办法检查应用程序是否安装在合法的正版Windows版本上? (Vista和更好,至less)。
让我澄清一些事情:微软并没有阻止用户使用他们的操作系统的未经validation或非法的版本。 因此我也没有任何理由阻止我的应用程序在这样的版本。 但我希望我的应用程序知道非法版本,并警告用户他的Windows版本未经validation。 也许他忘了,也许他不想validation。 这可能有很多原因,我不想阻止他们,只是让他们意识到他们的Windows版本的问题。
另外,当有人使用Windows的非有效版本时,如果是商业产品,我可能会对自己的软件进行更严格的validation检查。 在我的免费产品中,我只想要一个恼人的popup窗口,每天只出现一次。
未经validation的Windows版本的主要问题是它们可能包含其他间谍软件和其他恶意软件,并且有可能无法获得所有必需的更新。 这些Windows版本比已validation的Windows版本具有更弱的保护。 由于我的一些应用程序使用敏感数据,我不希望任何恶意软件泄露这些敏感数据。
另外,我认为盗版软件对任何免费的替代品都是有害的。 如果不是所有盗版的Windows版本都在漫游,那么Linux和FreeBSD会更受欢迎。 使用盗版软件的人不太可能首先购买该产品,但是我宁愿使用免费的替代产品。 盗版软件对微软造成了一些伤害,但是它给免费社区带来了更多的伤害,因为它让人们连接到这些商业产品上。
这是一个有趣的问题,但错误的态度。 这不是你的业务检查用户的事务。
或者你也可以:
在向您出售您的软件之前,需要申报税款
警方提供的书面证据表明他们没有犯罪记录(或者他们可能会再次违法并盗用你的软件)
检查他们是否安装了任何洪流软件(当然它可以合法使用,但事实上,他们有这意味着他们可能会滥用)
检查他们是否安装了防病毒软件(提高他们的社会意识并帮助打击垃圾邮件机器人网络)
信用记录报告(确保他们已经及时支付账单,也不会忘记支付您的软件)
他们的家庭医生的证明,他们没有终极的疾病(一个人感到谴责可能会打破法律,盗版你的软件)
你看到哪里去了吗?
开发软件的关键规则之一 – 你的软件应该是有用的,使用户感到高兴,建立尽可能少的障碍。
你不可能知道,你不应该在意。
安装的合法状态与磁盘上的任何内容完全无关。 相同的安装现在可以无需许可,并在下一分钟获得许可,而不需要对机器进行任何更改。
这是微软担心的事情。 不是你。
Microsof提供了一个小的API,但MSDN并没有说明如何在客户端系统上安装使用的DLL。 我的猜测是,它来自Windows Update的SP2或WGA实用程序。
这是API的MSDN页面 。
为什么你不检查,以确保他们没有运行盗版的Photoshop? 还是半条命? 微软Office如何?
看看我要去哪里? 我并不特别同意盗版检查,但是为了让您头疼,我建议您只担心自己的软件是否是盗版软件,使用任何您想要的方式(许可证密钥,打电话回家,无论你如此渴望的邪恶和侵入的方法!)。 所以盗版Windows的人可能也会盗用你的软件。 如果你打算阻止你的软件的使用,如果你发现他们正在运行一个盗版的Windows – 那么这是不好的做法。 如果验证软件错误或不正确,或者因为某人使用了合法购买的许可证密钥而报告软件被盗版?
除了这不关你的事,特别是Windows已经知道虚报Windows合法副本是盗版的。 你不应该相信任何人的验证工具,但你自己的(即使你可能已经编码一个糟糕的验证工具!)。 有太多的东西可能会导致一个不正确的盗版报告 – 我会避开这个方法。
甚至微软也不能可靠地做到这一点。 微软更新WGA是针对那些似乎不得不做很少的人绕过它的,这是一场持续的军备竞赛。 这是因为需要预装和预验证的操作系统的原始设备制造商(OEM)的需求加剧的,因此他们不会惹恼他们的客户,他们可能是商业客户。 我认为 ,围绕这个问题的许多“黑客”都与OEM主密钥有关。
基本上,盗版软件(包括Windows和你的软件)是一个社会问题,而不是技术问题。 作为一个软件供应商(imho),最糟糕的事情就是惹恼你的合法客户,试图阻止盗版者使你的合法客户被盗用。 例如:一些游戏已经安装了rootkit,并限制了激活次数(例如Spore)。
特别限制激活是一种邪恶的做法。 人们对这些事情有一种天生的公平感。 如果他们有两个激活的东西,运行Windows XP并切换到Windows 7 RC,然后将切换到真正的Windows 7版本时,他们刚刚超过了限制。 和Spore的情况一样,你可以通过电话申请额外的激活,但是这种事情只是以一种错误的方式来磨擦人们。 有些人认为他们会绕过这样的限制感觉是合理的。
至于降低你的问题,我怀疑是因为人们不喜欢你的意图,可能是由于类似于我上面列出的原因。
我看到的方式,我永远不会相信别人的验证系统是足够准确的,我愿意锁定人们使用我的软件。
我看到你来自哪里,但我建议让MS担心Windows验证。
另外,通过机器本身确实无法知道安装的真正法律地位。 当然,还有“验证”和所有的爵士乐,但是在真相背景下,这是毫无意义的。
只要问技术部分,遗漏你的理由/哲学会给你直接的答案。
如果您防止盗版您自己的软件(我的意思是阻止它在盗版的Windows上运行),那么可能您的软件将不会尽可能地成功。
只要让你的客户支付你的软件公平的价格。