10

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

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

4

5 回答 5

6

Software Licensing API- SLIAPI,看一看SLIsGenuineLocal()。(替换LegitCheck

于 2011-05-02T15:49:29.480 回答
3

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

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

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

于 2011-05-02T15:44:07.283 回答
0

不确定它是否适用于 Win7,但我发现了一篇使用Win32_WindowsProductActivation类检查 XP 是否激活的帖子。

我将在我的机器(x64 Win7)上构建一个测试,看看它是否返回激活状态,但至少同时给你一些尝试的东西。

编辑 (希望我继续阅读文档)该课程页面上的评论提到该课程,在 Win 7 和其他版本上)似乎已替换为Software Licensing Classes。我会看看我能不能得到一个工作结果。

于 2011-05-02T15:42:04.973 回答
0

您可以检查 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows Activation Technologies\AdminObject\Store\TotalValidations 并查看它是否为 1。这可能不是验证激活的确定方法,但您至少应该能够看到如果它被验证。

于 2011-05-02T15:46:00.793 回答
0

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

于 2018-10-21T22:11:53.013 回答