【问题标题】:Working out version of windows [duplicate]制定Windows版本[重复]
【发布时间】:2010-09-03 12:03:18
【问题描述】:

可能重复:
How to detect Windows 64 bit platform with .net?

您如何从 c# .net 2.0 windows 应用程序中知道操作系统是 x64 还是 x86?

应用也是32位的。

谢谢

【问题讨论】:

标签: c# .net windows


【解决方案1】:

使用GetEnvironmentVariable 查找PROCESSOR_ARCHITEW6432 变量。如果不存在,则必须运行 32 位:

bool is64bit = !string.IsNullOrEmpty(
    Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432"));

编辑:

感谢Hans Passant 指出使用PROCESSOR_ARCHITECTURE 变量时的错误。

【讨论】:

  • 你真的试过这个吗? Wow64不是那么容易被打败的,仿真覆盖了每一个角落。 IsWow64Process 和 GetNativeSystemInfo 除外。
  • @Hans Passant - 从生产系统复制。我应该担心吗?
  • @Hans Passant - 实际上是一个严肃的问题。我认为它从“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment\PROCESSOR_ARCHITECTURE”中提取了值?这怎么可能是错的?
  • 注册表虚拟化也由 Wow64 负责。
  • @Hans Passant - 更新答案。希望那会更好。
猜你喜欢
  • 2011-04-19
  • 1970-01-01
  • 1970-01-01
  • 2014-03-11
  • 1970-01-01
  • 1970-01-01
  • 2012-06-07
  • 1970-01-01
  • 2013-10-04
相关资源
最近更新 更多