【问题标题】:How do I determine if a computer is running XP Service pack 3如何确定计算机是否正在运行 XP Service Pack 3
【发布时间】:2010-10-26 03:56:42
【问题描述】:

使用注册表或文件系统。限制的原因是我这样做是作为 MSI 条件语句。

干杯!

【问题讨论】:

  • 看看如何右键单击并转到“我的电脑”上的属性,这对于有经验的人来说应该很容易回答有关此信息存储位置的问题。可悲的是那不是我:)
  • 这个问题的标题让我看到了希望,然后我阅读了关于注册表或文件系统的部分。 :(

标签: windows windows-xp windows-installer


【解决方案1】:

您应该在以下注册表项中找到足够的信息来确定操作系统服务包(在最坏的情况下您始终可以使用构建字符串):


HKLM\Software\Microsoft\Windows NT\CurrentVersion

【讨论】:

  • 干杯!您可以在此密钥下的哪个位置找到服务包信息?
  • 在 Service Pack 3 中,您应该会找到一个名为 CSDVersion 且值为“Service Pack 3”的键
【解决方案2】:

VerifyVersionInfo 函数应该允许您检查正在运行的 Windows 版本是否满足应用程序的要求,而不会出现使用 GetVersionEx 检查确切版本时可能出现的陷阱(例如中断主要版本更改 - 您的应用程序很可能在 Vista 和 Windows 7 以及尚未开发的未来版本上运行)。

【讨论】:

    【解决方案3】:

    在注册表项下

    HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion

    寻找密钥对:

    CurrentVersion = Microsoft Windows NT 5.1.2600 Service Pack 3

    【讨论】:

    • CSDVersion 密钥具有“Service Pack n”值。这足以满足我的需要。
    【解决方案4】:

    如果您使用的是 MSI,您应该可以直接在条件语句中使用 VersionNTServicePackLevel 属性。

    例如。以下代码检查 Windows XP sp3 或更高版本:

    VersionNT=501 And ServicePackLevel>2
    

    如果您还需要内部版本号,也可以检查 WindowsBuild 属性。

    【讨论】:

      【解决方案5】:

      “运行”(Windows 键 + r 或启动/运行)msinfo32 或 sysdm.cpl

      【讨论】:

      • 这个是xp的,不知道7/vista之类的
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-19
      • 2015-08-01
      • 2015-04-02
      相关资源
      最近更新 更多