Я использую C#, .net 9.0, против 2022 и систему пакетов Nuget.management .
В основном при чтении и обработке информации оборудования, конечно, можно наткнуться на ПК с несколькими графическими процессорами. Через немного спины и четвертого с лидером проекта мне сказали, что я должен сохранить информацию только для одного графического процессора, поэтому, следовательно, наиболее актуально.public class WinVideoControllerInfo
{
#region Properties
public string Name { get; set; }
public uint AdapterRAM { get; set; }
public string AdapterDACType { get; set; }
public string VideoProcessor { get; set; }
#endregion
public WinVideoControllerInfo()
{
}
// this is for interface purposes don't mind it
public WinVideoControllerInfo Construct(ManagementBaseObject obj)
{
return new WinVideoControllerInfo(obj);
}
// I am aware of the problems with AdapterRAM I got a solution for that
public WinVideoControllerInfo(ManagementBaseObject obj)
{
// this basically just gets the Property Value of a MBO Property with "the same name"
Name = obj.GetPropVal(nameof(Name));
AdapterRAM = obj.GetPropVal(nameof(AdapterRAM));
AdapterDACType = obj.GetPropVal(nameof(AdapterDACType));
VideoProcessor = obj.GetPropVal(nameof(VideoProcessor));
}
}
< /code>
Важный код: < /p>
public static void RetrieveGPUInfo()
{
// Get GPUs (this will have a check if the List is empty)
List winInfos = ReadWinGPUS();
// Filter for the relevant GPU
WinVideoControllerInfo relevantGPU = FilterForRelevantGPU(winInfos);
// Process the data but I got that bit covered and it's not relevant for the question I think
// If you guys want this bit here feel free to tell me
// ...
}
public static List ReadWinGPUS()
{
List winInfos = new();
try
{
// all this does is give me the ManagementObjectCollection for Win32_VideoController
ManagementObjectCollection rawGraphicsInformation = GetSearcherResults(SearchAreas.Graphic);
// Iterate over the active GPUs (this automatically does not include any disabled GPUs)
foreach (ManagementBaseObject baseObject in rawGraphicsInformation)
{
WinVideoControllerInfo winInfo = new WinVideoControllerInfo(baseObject);
winInfos.Add(winInfo);
}
}
catch (Exception e)
{
// todo
}
// return all found GPUs
return winInfos;
}
public static WinVideoControllerInfo FilterForRelevantGPU(List winInfos)
{
WinVideoControllerInfo? relevantGPU = null;
WinVideoControllerInfo[] internalGPUs = winInfos.Where(w => w.AdapterDACType.Contains("Internal")).ToArray();
WinVideoControllerInfo[] nonInternalGPUs = winInfos.Except(internalGPUs).ToArray();
// this filter is very preliminary still
if (nonInternalGPUs.Any())
{
relevantGPU = nonInternalGPUs[0];
}
else
{
relevantGPU = internalGPUs[0];
}
return relevantGPU;
}
< /code>
Теперь, чтобы добраться до мяса вопроса: я начинаю сомневаться в том, разумно ли мои «основные» критерии «не быть внутренним DAC». Документация шаткая, но до сих пор я взял на себя, чтобы понять, что внутренний является показателем того, что это не выделенный графический процессор, а скорее графический процессор, встроенный в процессор. Но я могу ошибаться здесь. Я в основном хочу знать, правильно ли мое мышление, и если не то, что есть лучше, чтобы фильтровать для выделенного графического процессора, если он существует. И если существует несколько, как я мог бы определить его актуальность. Я хотел бы, чтобы я мог, но сейчас я не получаю его. Я знаю, что это довольно расплывчатая задача, но я немного разбивал свой мозг по этому поводу. В то время как моя текущая попытка OFC игнорирует, что может быть несколько выделенных графических процессоров. /> Dactype «внутренний» на самом деле означает то, что я предполагал, это означает? /> < /li>
< /ul>
Подробнее здесь: https://stackoverflow.com/questions/797 ... pu-of-a-pc
Определение наиболее релевантного/первичного/основного графического процессора ПК ⇐ C#
Место общения программистов C#
1759435024
Anonymous
Я использую C#, .net 9.0, против 2022 и систему пакетов Nuget.management .
В основном при чтении и обработке информации оборудования, конечно, можно наткнуться на ПК с несколькими графическими процессорами. Через немного спины и четвертого с лидером проекта мне сказали, что я должен сохранить информацию только для одного графического процессора, поэтому, следовательно, наиболее актуально.public class WinVideoControllerInfo
{
#region Properties
public string Name { get; set; }
public uint AdapterRAM { get; set; }
public string AdapterDACType { get; set; }
public string VideoProcessor { get; set; }
#endregion
public WinVideoControllerInfo()
{
}
// this is for interface purposes don't mind it
public WinVideoControllerInfo Construct(ManagementBaseObject obj)
{
return new WinVideoControllerInfo(obj);
}
// I am aware of the problems with AdapterRAM I got a solution for that
public WinVideoControllerInfo(ManagementBaseObject obj)
{
// this basically just gets the Property Value of a MBO Property with "the same name"
Name = obj.GetPropVal(nameof(Name));
AdapterRAM = obj.GetPropVal(nameof(AdapterRAM));
AdapterDACType = obj.GetPropVal(nameof(AdapterDACType));
VideoProcessor = obj.GetPropVal(nameof(VideoProcessor));
}
}
< /code>
Важный код: < /p>
public static void RetrieveGPUInfo()
{
// Get GPUs (this will have a check if the List is empty)
List winInfos = ReadWinGPUS();
// Filter for the relevant GPU
WinVideoControllerInfo relevantGPU = FilterForRelevantGPU(winInfos);
// Process the data but I got that bit covered and it's not relevant for the question I think
// If you guys want this bit here feel free to tell me
// ...
}
public static List ReadWinGPUS()
{
List winInfos = new();
try
{
// all this does is give me the ManagementObjectCollection for Win32_VideoController
ManagementObjectCollection rawGraphicsInformation = GetSearcherResults(SearchAreas.Graphic);
// Iterate over the active GPUs (this automatically does not include any disabled GPUs)
foreach (ManagementBaseObject baseObject in rawGraphicsInformation)
{
WinVideoControllerInfo winInfo = new WinVideoControllerInfo(baseObject);
winInfos.Add(winInfo);
}
}
catch (Exception e)
{
// todo
}
// return all found GPUs
return winInfos;
}
public static WinVideoControllerInfo FilterForRelevantGPU(List winInfos)
{
WinVideoControllerInfo? relevantGPU = null;
WinVideoControllerInfo[] internalGPUs = winInfos.Where(w => w.AdapterDACType.Contains("Internal")).ToArray();
WinVideoControllerInfo[] nonInternalGPUs = winInfos.Except(internalGPUs).ToArray();
// this filter is very preliminary still
if (nonInternalGPUs.Any())
{
relevantGPU = nonInternalGPUs[0];
}
else
{
relevantGPU = internalGPUs[0];
}
return relevantGPU;
}
< /code>
Теперь, чтобы добраться до мяса вопроса: я начинаю сомневаться в том, разумно ли мои «основные» критерии «не быть внутренним DAC». Документация шаткая, но до сих пор я взял на себя, чтобы понять, что внутренний является показателем того, что это не выделенный графический процессор, а скорее графический процессор, встроенный в процессор. Но я могу ошибаться здесь. Я в основном хочу знать, правильно ли мое мышление, и если не то, что есть лучше, чтобы фильтровать для выделенного графического процессора, если он существует. И если существует несколько, как я мог бы определить его актуальность. Я хотел бы, чтобы я мог, но сейчас я не получаю его. Я знаю, что это довольно расплывчатая задача, но я немного разбивал свой мозг по этому поводу. В то время как моя текущая попытка OFC игнорирует, что может быть несколько выделенных графических процессоров. /> Dactype «внутренний» на самом деле означает то, что я предполагал, это означает? /> < /li>
< /ul>
Подробнее здесь: [url]https://stackoverflow.com/questions/79780658/determining-the-most-relevant-primary-main-gpu-of-a-pc[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия