以编程方式检查Windows 7是否已激活

时间:2011-05-02 15:32:00

标签: c# windows authentication activation

背景 我正在创建将加载到多个工作站的系统映像。将图像加载到工作站后,将激活Windows。这些计算机将无法连接到Internet,并将通过电话激活。

问题: 我想以编程方式检查Windows 7是否已激活,以便在未激活Windows 7时我们的软件将无法运行。我们的软件是用C#编写的。

5 个答案:

答案 0 :(得分:6)

软件许可API - SLIAPI,请查看SLIsGenuineLocal()。 (取代LegitCheck

答案 1 :(得分:3)

您可以在机器上运行“Slmgr.vbs”,然后重定向输出以进行检查。

System.Diagnostics.Process.Start(@"cscript Slmgr.vbs > D:\\log.txt");

这将返回您需要的所有信息。虽然不是最干净的方法。

答案 2 :(得分:0)

不确定它是否适用于Win7,但我found a post使用Win32_WindowsProductActivation类检查XP是否激活。

我将在我的机器上构建一个测试版(x64 Win7)并查看它是否返回激活,但至少给你一些东西可以在同一时间试用。

编辑 (希望我继续阅读文档)该类页面上的评论提到此类,在Win 7和其他版本上)似乎被替换为Software Licensing Classes。我会看看能不能取得成效。

答案 3 :(得分:0)

您可以检查HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Windows Activation Technologies \ AdminObject \ Store \ TotalValidations并查看它是否为1.这可能不是验证激活的明确方式,但您至少应该是abel看看它是否经过验证。

答案 4 :(得分:0)

您可以使用以下参考:https://github.com/Marko97IT/CWA 在README.md中,您可以找到下载链接。