System Info Scanner

A Windows Forms application that uses WMI (Windows Management Instrumentation) and system registry to extract comprehensive hardware and software information.

Features

Hardware Detection

Automatically detects and displays CPU specifications, GPU details, RAM capacity, and storage information

System Monitoring

Provides real-time monitoring of system performance metrics and device status

Data Export

Exports system information in multiple formats for documentation and analysis

Implementation

using System;
using System.Management;

class SystemInfoGrabber
{
    static void Main()
    {
        Console.WriteLine("=== System Information ===\n");
        
        GetProcessorInfo();
        GetMemoryInfo();
        GetGPUInfo();
        GetStorageInfo();
        GetOSInfo();
        GetNetworkInfo();
    }

    static void GetProcessorInfo()
    {
        ManagementObjectSearcher searcher = new ManagementObjectSearcher(
            "SELECT * FROM Win32_Processor");
        
        foreach (ManagementObject obj in searcher.Get())
        {
            Console.WriteLine("Processor: " + obj["Name"]);
            Console.WriteLine("Cores: " + obj["NumberOfCores"]);
            Console.WriteLine("Threads: " + obj["NumberOfLogicalProcessors"]);
            Console.WriteLine("Speed: " + obj["MaxClockSpeed"] + " MHz\n");
        }
    }

    static void GetMemoryInfo()
    {
        ManagementObjectSearcher searcher = new ManagementObjectSearcher(
            "SELECT * FROM Win32_PhysicalMemory");
        
        long totalMemory = 0;
        foreach (ManagementObject obj in searcher.Get())
        {
            long capacity = Convert.ToInt64(obj["Capacity"]);
            totalMemory += capacity;
            Console.WriteLine("RAM: " + (capacity / 1024 / 1024 / 1024) + " GB");
        }
        Console.WriteLine("Total Memory: " + (totalMemory / 1024 / 1024 / 1024) + " GB\n");
    }

    static void GetGPUInfo()
    {
        ManagementObjectSearcher searcher = new ManagementObjectSearcher(
            "SELECT * FROM Win32_VideoController");
        
        foreach (ManagementObject obj in searcher.Get())
        {
            Console.WriteLine("GPU: " + obj["Name"]);
            Console.WriteLine("VRAM: " + (Convert.ToInt64(obj["AdapterRAM"]) 
                / 1024 / 1024) + " MB\n");
        }
    }

    static void GetStorageInfo()
    {
        ManagementObjectSearcher searcher = new ManagementObjectSearcher(
            "SELECT * FROM Win32_DiskDrive");
        
        foreach (ManagementObject obj in searcher.Get())
        {
            long size = Convert.ToInt64(obj["Size"]);
            Console.WriteLine("Drive: " + obj["Model"]);
            Console.WriteLine("Size: " + (size / 1024 / 1024 / 1024) + " GB\n");
        }
    }

    static void GetOSInfo()
    {
        ManagementObjectSearcher searcher = new ManagementObjectSearcher(
            "SELECT * FROM Win32_OperatingSystem");
        
        foreach (ManagementObject obj in searcher.Get())
        {
            Console.WriteLine("OS: " + obj["Caption"]);
            Console.WriteLine("Version: " + obj["Version"]);
            Console.WriteLine("Build: " + obj["BuildNumber"] + "\n");
        }
    }

    static void GetNetworkInfo()
    {
        ManagementObjectSearcher searcher = new ManagementObjectSearcher(
            "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=true");
        
        foreach (ManagementObject obj in searcher.Get())
        {
            Console.WriteLine("Network: " + obj["Description"]);
            string[] ipAddresses = (string[])obj["IPAddress"];
            if (ipAddresses != null)
                Console.WriteLine("IP: " + ipAddresses[0] + "\n");
        }
    }
}