2010-07-28 53 views
0

我正在尋找一種可靠的方式來確定Windows操作系統體系結構(32位或64位),對Windows版本或Windows版本不敏感系統區域設置/顯示語言。我將使用C#來執行此操作。爲了澄清,我需要OS架構,而不是處理器架構,而不是應用程序架構。以非本地語言敏感的方式確定Windows操作系統體系結構

我知道我可以使用IntPtr.Size,但這取決於應用程序的目標體系結構。

我也嘗試使用System.Management.ManagementClass從Win32_OperatingSystem中獲取「OSArchitecture」屬性。但是,這個值取決於顯示語言而改變。 (例如,如果我將顯示語言設置爲西班牙語,我會得到「64位」,而在英語中,它是「64位」。)

謝謝!

回答

1

這裏是一個答案How to detect Windows 64 bit platform with .net?

基本上,你可以先檢查過程的類型,做到這一點,然後調用正確的方法做正確的檢查。

+0

感謝您的幫助。這可能是我最終會結束的。 – Tom 2010-07-29 17:34:16

0

對於有同樣問題的任何人來說,這似乎也是一個竅門。我不能肯定這是多麼強大的:

 


public bool Is64Bit() { 
    return (System.Environment.GetEnvironmentVariable("ProgramFiles(x86)") != null); 
} 

 
1

入門安裝了Windows架構:

string getOSArchitecture() 
    { 
     if (Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86))) 
      return "64-bit"; 
     return "32-bit"; 
    }