以编程方式检查 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 是不是已激活的主要内容,如果未能解决你的问题,请参考以下文章
C#:如何以编程方式检查 Web 服务是不是已启动并正在运行?