C#: Retrieve Machine Information

This is a example how to get Machine Information in C#. The example will use Class ManagementObjectSearcher --> System.Management

Note: The code will only work on Window 32 bit, If you are using 64 bit Operation system, you need to comment few Method GetTotalPhysicalMemory,GetTotalVirtualMemory,and GetAvailableVirtualMemory.

The MachineInfo Class

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;
using System.Net;
using System.Diagnostics;

namespace GenericErrorHandling
{
    class MachineInfo
    {
        ManagementObjectSearcher query;
        ManagementObjectCollection result;
        string responseString;
        int responseInt;

        public string GetMachineName()
        {
            return Environment.MachineName.ToUpper();
        }
        public string GetOSVersion()
        {
            return Environment.OSVersion.VersionString;
        }
        public string GetProcessorCount()
        {
            return Environment.ProcessorCount.ToString();
        }
        public string GetIPAddress()
        {
            IPHostEntry ipEntry = Dns.GetHostEntry(Dns.GetHostName());
            IPAddress[] ipAddress = ipEntry.AddressList;
            return ipAddress[ipAddress.Length - 1].ToString();
        }
        public string GetTotalPhysicalMemory()
        {
            query = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalMemoryConfiguration");
            result = query.Get();
            foreach (ManagementObject managementObject in result)
            {
                responseInt = Convert.ToInt32(managementObject["TotalPhysicalMemory"].ToString());
            }
            responseInt = (responseInt / 1024);
            responseString = responseInt.ToString() + " MB";
            return responseString;
        }
        public string GetAvailablePhysicalMemory()
        {
            PerformanceCounter counter = new PerformanceCounter("Memory", "Available Bytes");
            responseInt = ((int)Convert.ToInt64(counter.NextValue()) * (-1)) / (1024 * 1024);
            responseString = responseInt.ToString() + " MB";
            return responseString;
        }

        public string GetTotalVirtualMemory()
        {
            query = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalMemoryConfiguration");
            result = query.Get();
            foreach (ManagementObject managementObject in result)
            {
                responseInt = Convert.ToInt32(managementObject["TotalVirtualMemory"].ToString());
            }
            responseInt = (responseInt / 1024);
            responseString = responseInt.ToString() + " MB";
            return responseString;
        }

        public string GetAvailableVirtualMemory()
        {
            query = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalMemoryConfiguration");
            result = query.Get();

            foreach (ManagementObject managementObject in result)
            {
                responseInt = Convert.ToInt32(managementObject["AvailableVirtualMemory"].ToString());
            }
            responseInt = (responseInt / 1024);
            responseString = responseInt.ToString() + " MB";
            return responseString;

        }
        public string GetCpuFrequency()
        {
            query = new ManagementObjectSearcher("SELECT * FROM Win32_Processor");
            result = query.Get();
            foreach (ManagementObject managementObject in result)
            {
                responseInt = Convert.ToInt32(managementObject["CurrentClockSpeed"].ToString());
            }
            responseString = responseInt.ToString() + " MHz";
            return responseString;
        }
    }

}


The Code To Show Machine Information

        private void button2_Click(object sender, EventArgs e)
        {
            MachineInfo M = new MachineInfo();
            string msg = "Number Of Processor : " + M.GetProcessorCount();
            msg += "\nProcessor MHZ : " + M.GetCpuFrequency();
            msg += "\nMachine Name : " + M.GetMachineName();
            msg += "\nGetOSVersion : " + M.GetOSVersion();
            msg += "\nGetIPAddress : " + M.GetIPAddress();
            msg += "\nGetTotalPhysicalMemory : " + M.GetTotalPhysicalMemory();
            msg += "\nGetAvailablePhysicalMemory : " + M.GetAvailablePhysicalMemory();
            msg += "\nGetTotalVirtualMemory : " + M.GetTotalVirtualMemory();
            msg += "\nGetAvailableVirtualMemory : " + M.GetAvailableVirtualMemory();

            MessageBox.Show(msg);

        }


The Output




By
NOTE : – If You have Found this post Helpful, I will appreciate if you can Share it on Facebook, Twitter and Other Social Media Sites. Thanks =)

Popular posts from this blog

Example to disable save as certain file type in SSRS Report Viewer

How to create DataGrid or GridView in JSP - Servlet

Control Webpart Visible/Enable using macro in Kentico