4

I used this code for finding graphic cards:

        ManagementScope scope = new ManagementScope("\\\\.\\ROOT\\cimv2");
        ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_VideoController");
        ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
        ManagementObjectCollection queryCollection = searcher.Get();
        string graphicsCard = "";
        foreach (ManagementObject mo in queryCollection)
        {
            foreach (PropertyData property in mo.Properties)
            {
                if (property.Name == "Description")
                {
                    graphicsCard += property.Value.ToString() + " ";
                }
            }
        }

I have two graphic cards:

My Graphic Cards

Above code return all graphic cards.

How to find active graphic card that chosen by windows?

cHao
  • 82,321
  • 20
  • 145
  • 171
Mohammad
  • 517
  • 5
  • 20

1 Answers1

6

try this

ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_VideoController");
string graphicsCard = string.Empty;
foreach (ManagementObject obj in searcher.Get())
{
      if (obj["CurrentBitsPerPixel"] != null && obj["CurrentHorizontalResolution"] != null)
      {
            graphicsCard = obj["Name"].ToString();
      }
}
Pranav Patel
  • 1,852
  • 11
  • 26