gpt4 book ai didi

c# - WinForms 应用程序准确确定它在哪个 Windows 操作系统上运行的最佳方法是什么?

转载 作者:可可西里 更新时间:2023-11-01 13:28:41 26 4
gpt4 key购买 nike

我有一个 WinForms 应用程序需要根据其运行的操作系统以特定方式(特别是特定安装程序的 shell)运行。

我正在使用 System.OperatingSystem 类,并结合了 PlatFormID、Major、Minor 和 Build 编号,这可以帮助您完成大部分工作。

不幸的是,OperatinSystem 对象的属性不允许您准确地区分某些平台。例如。 Vista 和 Windows Server 2008,或 Vista 32 位和 Vista 64 位。同样,XP 64 位专业版似乎具有与 Server 2003 相同的版本控制信息。

那么是否可以通过 WinForms 应用程序(使用 c#)准确确定您正在运行的 Windows 操作系统?

最佳答案

区分 32 位和 64 位的最简单方法是通过环境变量 PROCESSOR_ARCHITECTURE

string value = Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE");

如果您在 32 位 Windows 上运行此代码,value 将为“x86”或为空。在 64 位 Windows 上,我假设它将设置为除“x86”之外的任何值。有点乱,但到目前为止它适用于所有版本的 Windows,您可以在其中执行 .NET 程序。

您还可以使用更现代的 WMI 查询几乎所有您能想到的操作系统信息,但这只适用于 Windows 2000 或更新版本。如果你能忍受,check this blog post for some examples .

关于c# - WinForms 应用程序准确确定它在哪个 Windows 操作系统上运行的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2241603/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com