如何以编程方式检测是否已安装Windows 8.1更新

时间:2014-04-28 20:58:59

标签: c# windows-8.1

我想从C#应用程序中检测是否安装了最新的Windows 8.1 Update(KB 2919355)

我无法在微软的任何网站上找到任何内容,也无法通过谷歌查找指示如何执行此操作的内容。

谢谢!

3 个答案:

答案 0 :(得分:2)

该更新实际上是“汇总”或其他单独的较小更新的集合。如果您转到Knowledge base page for the update并向下滚动到“文件信息”,您会看到更新实际上是以下其他更新的组合。

  • KB2919442
  • KB2919355
  • KB2932046
  • KB2937592
  • KB2938439
  • KB2934018

然后,您需要检查是否已应用上面列出的所有更新,或者是否应用了单个主更新。我不知道如何在C#中单独执行此操作,但通过命令行可以通过控制台命令执行此操作

wmic qfe get hotfixid | find "KB2919355"

答案 1 :(得分:0)

我在安装Windows Update之前从MSDN下载安装了Windows 8.1 Update。它作为一系列带有自述文件的MSU文件分发。如果您选择检测其存在,则自述文件中的更新列表可能很有用。

Windows 8.1, Windows Server 2012 R2, Windows RT 8.1 Update

Recommended Install Order
1.  KB2919442
2.  KB2919355
3.  KB2932046
4.  KB2937592
5.  KB2938439
6.  KB2949621

答案 2 :(得分:0)

这可能是罪魁祸首:

Operating system version changes in Windows 8.1 and Windows Server 2012 R2

  

表现

     

在Windows 8.1中,不推荐使用GetVersion(Ex)API。这意味着虽然您仍然可以调用API,但如果您的应用程序没有专门针对Windows 8.1,您将获得Windows 8版本控制(6.2.0.0)。

     

解决方案

     

要定位Windows 8.1,您需要在源文件中包含应用清单或包含_NT_TARGET_VERSION = $(_NT_TARGET_VERSION_LATEST)。

文章中给出了所需清单内容的模式细节。