The easiest way to distinguish between 32 bits and 64 bits is to use an environment variable PROCESSOR_ARCHITECTURE.
string value = Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE");
if you run this code on 32-bit Windows, it valuewill be either "x86" or empty. On 64-bit Windows, I assume that it will be installed on everything except "x86". It’s kind of messy, but so far it works in all versions of Windows where you can run the .NET program.
WMI , , Windows 2000 . , .