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

Posted

技术标签:

【中文标题】以编程方式检查 Windows 7 是不是已激活【英文标题】:Programmatically check whether Windows 7 is activated以编程方式检查 Windows 7 是否已激活 【发布时间】:2011-08-17 01:48:00 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

谢谢亚历克斯。这将如何在 C# 应用程序中实现? 谷歌搜索 "EntryPoint = "SLIsGenuineLocal"" 给了我 theroadtodelphi.wordpress.com/2009/10/12/… 这对我有用 - 只要我的副本是合法的 :)【参考方案2】:

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

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

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

【讨论】:

【参考方案3】:

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

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

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

【讨论】:

【参考方案4】:

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

【讨论】:

【参考方案5】:

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

【讨论】:

链接已失效... @MichaelSantos 您可以使用此链接下载 DLL:dllme.com/dll/files/cwa_dll.html

以上是关于以编程方式检查 Windows 7 是不是已激活的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式检查 Windows 是不是是最新的?

检查是不是有新的 Windows 版本可用并以编程方式安装

C#:如何以编程方式检查 Web 服务是不是已启动并正在运行?

如何以编程方式确定字体是不是为 CFF?

windows已激活,但提示:windows 7 内部版本7601 此windows副本不是正版

iOS 7 以编程方式每个应用程序 ***