// The initial C# code for the "plain" WMI query was generated by WMI Code Generator, Version 5.00, http://www.robvanderwoude.com/wmigen.php using System; using System.Management; using System.Collections.Generic; namespace Win32_Processor_Query { public class WMIQuery { public static int Main(string[] args) { string fullpath = Environment.GetCommandLineArgs().GetValue(0).ToString(); string[] program = fullpath.Split('\\'); string exename = program[program.GetUpperBound(0)]; exename = exename.Substring(0, exename.IndexOf('.')); if (args.Length > 0) { Console.OpenStandardError(); Console.WriteLine(); Console.WriteLine(exename + ", Version 1.00"); Console.WriteLine("Detect if running in a 32-bit or 64-bit OS"); Console.WriteLine(); Console.WriteLine("Usage: " + exename.ToUpper() + " [ computername ]"); Console.WriteLine(); Console.WriteLine("Where: \"computername\" is the (optional) name of a remote computer"); Console.WriteLine(" (default if not specified: local computer)"); Console.WriteLine(); Console.WriteLine("Note: Return value (\"ErrorLevel\") 32 or 64 equals OS value"); Console.WriteLine(); Console.WriteLine("Written by Rob van der Woude"); Console.WriteLine("http://www.robvanderwoude.com"); Console.OpenStandardOutput(); return 1; } try { string wmins = "root\\CIMV2"; if (args.Length == 1) { wmins = "\\\\" + args[0] + "\\" + wmins; } UInt16 addresswidth = 0; ManagementObjectSearcher searcher = new ManagementObjectSearcher(wmins, "SELECT * FROM Win32_Processor"); foreach (ManagementObject queryObj in searcher.Get()) { addresswidth = (UInt16) (queryObj["AddressWidth"]); Console.WriteLine("Windows : {0}-bit", addresswidth); Console.WriteLine("Processor : {0}-bit", queryObj["DataWidth"]); } return addresswidth; } catch (Exception e) { Console.OpenStandardError(); Console.WriteLine("Error: " + e.Message); Console.WriteLine(); Console.WriteLine("For detailed help, run: " + exename + " /?"); Console.OpenStandardOutput(); return 1; } } } }