VC#. Как получить информацию о процессоре, GPU, ОЗУ, BIOS. Вывод характеристик ПК. Урок 34
HTML-код
- Опубликовано: 24 авг 2024
- #csharp #hardwareinfo #wmi
Поддержать проект - www.donationale...
В этом уроке вы узнаете как вывести характеристики пк на C#. Вы узнаете как вывести информацию о процессоре, оперативной памяти, видеокарте, BIOS, диске, клавиатуре, чипсете и т.д.
Подписывайтесь на канал, ставьте лайки, задавайте вопросы в комментариях!
Спасибо, благодаря тебе я написал и сдал Курсовую в прошлом году
Отличное видео! Большое спасибо за уроки!
хотелось бы более подробное объяснение, что делает тот или иной метод, а не так что для этого мы используем метод, а что этот метод делает не понятно.
Процессор
Win32_Processor
Видеокарта
Win32_VideoController
Чипсет
Win32_IDEController
Батарея
Win32_Battery
Биос
Win32_BIOS
Оперативная память
Win32_PhysicalMemory
Кэш
Win32_CacheMemory
USB
Win32_USBController
Диск
Win32_DiskDrive
Логические диски
Win32_LogicalDisk
Клавиатура
Win32_Keyboard
Сеть
Win32_NetworkAdapter
Пользователи
Win32_Account
/////////
Процессор
Видеокарта
Чипсет
Батарея
Биос
Оперативная память
Кэш
USB
Диск
Логические диски
Клавиатура
Сеть
Пользователи
герой
Недопустимый запрос..
Подскажите! У меня "Недопустимый запрос", варианты с комментов попробовал, не помогает!
Где файл в "описании к видео?
Недопустимый запрос. Помогите пожалуйста. Не понимаю в чем ошибка
Как можно получить информацию о первичных и вторичных таймингах ОЗУ из биоса?
Подскажите что делать, я решил вместо комбобокс использовать табконтрол, что бы переключаться между вкладками, и когда я нажимаю на любую вкладку показывается инфа только о процессоре, допусти нажал на видеокарту а показывает процессор..нажал на биос показывает процессор ,уже пол часа мучаюсь
namespace HardWareInfo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void toolStripComboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string key = string.Empty;
switch (toolStripComboBox1.SelectedItem.ToString())
{
case "Процессор":
key = "Win32_Processor";
break;
case "Видеокарта":
key = "Win32_VideoController";
break;
case "Чипсет":
key = "Win32_IDEController";
break;
case "Батарея":
key = "Win32_Battery";
break;
case "Биос":
key = "Win32_BIOS";
break;
case "Оперативная память":
key = "Win32_PhysicalMemory";
break;
case "Кэш":
key = "Win32_CacheMemory";
break;
case "USB":
key = "Win32_USBController";
break;
case "Диск":
key = "Win32_DiskDrive";
break;
case "Логические диски":
key = "Win32_LogicalDisk";
break;
case "Клавиатура":
key = "Win32_Keyboard";
break;
case "Сеть":
key = "Win32_NetworkAdapter";
break;
case "Пользователь":
key = "Win32_Account";
break;
default:
key = "Win32_Processor";
break;
}
GetHardWareInfo(key, listView1);
}
private void Form1_Load(object sender, EventArgs e)
{
toolStripComboBox1.SelectedIndex = 0;
}
private void GetHardWareInfo(string key, ListView list)
{
list.Items.Clear();
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM " + key);
try
{
foreach (ManagementObject obj in searcher.Get())
{
if (obj.Properties.Count == 0)
{
MessageBox.Show("Не удалось получить информацию", "Ошибка",
MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
ListViewGroup listViewGroup;
try
{
listViewGroup = list.Groups.Add(obj["Name"].ToString(),
obj["Name"].ToString());
}
catch (Exception ex)
{
listViewGroup = list.Groups.Add(obj.ToString(), obj.ToString());
}
foreach (PropertyData data in obj.Properties)
{
ListViewItem item = new ListViewItem(listViewGroup);
if (list.Items.Count % 2 == 0)
{
item.BackColor = Color.WhiteSmoke;
}
item.Text = data.Name;
if (data.Value != null && !string.IsNullOrEmpty(data.Value.ToString()))
{
string resStr = string.Empty;
switch (data.Value.GetType().ToString())
{
case "System.String[]":
string[] stringData = data.Value as string[];
//string resStr1 = string.Empty;
foreach (string s in stringData)
{
resStr += s + " ";
}
item.SubItems.Add(resStr);
break;
case "System.UInt16[]":
ushort[] ushortData = data.Value as ushort[];
//string resStr2 = string.Empty;
foreach (ushort us in ushortData)
{
resStr += us.ToString() + " ";
}
item.SubItems.Add(resStr);
break;
default:
item.SubItems.Add(data.Value.ToString());
break;
}
list.Items.Add(item);
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
}
}
а как узнать ssd диск или нет?
Доброго времени суток, возникла ошибка с MessageBox. Может кто-нибудь сможет помочь? Я просто не силен в программировании, но курсач надо сдать
код не рабочий
Здравствуйте, у меня отображаются пустые значение, в чем может быть причина?
Windows 11, x64
Хотя на вкладке Bios, где пишет BiosVersion показывает инфу, а всё остальное - нет
Здравствуйте! Всё также делал, как и Вы! Всё перепроверил, видео посмотрел несколько раз! Когда запускаю, вылезает ошибка "Недопустимый запрос"! Не подскажите, в чём может быть причина?
Возможно от имени администратора запускать надо
@@Bytepp Спасибо! Но не помогло! А может причина быть в том, что эта форма открывается из другой формы?
Может быть сделать таймер? :) навомодный
Привет всем . Запускаю и выводит только значения процессора ( по дефолту) и так во всех вкладках. Хелп)
отбой, сам понял ошибку)
приветствую. у меня программа выводит ошибку "недопустимый вопрос" и все поля пустые. Был бы очень благодарен, если бы ты объяснил мне в чем моя проблема
"Недопустимый запрос" , что делать? От админа запускал
Какие-то устройства отсутствуют в твоём ПК значит. Попробуй для начала только о процессоре инфу вывести
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM " + key);
Скорее всего ты забыл пробел после FROM
@@trovtrov5865 в бог, как ты догадался🎉
переходи на черную сторону :)
В теме светлой силу чую я)))
Здравствуйте) Вчера весь вечер искал информацию как создавать графические приложения на машинном уровне. Я сам для контролеров avr пишу программы на с++ и асемблере. Спаял матрицу из светодиодов, написал программу которая считывает и записывает информацию с sd флешки на 2гига,я туда записал алфавит. Дописал программу для клавиатуры от пк благодаря которой можно выводить символы на экран. Вот минутный ролик со сборкой ruclips.net/video/yAqzvc3ppz0/видео.html Но как на машинном уровне выводить символы, рисовать графику на компьютере без посторонних программ? Подскажите пожалуйста что надо изучать. На avr все просто, к матрице на столбци и строки подключил сдвиговые регистры и управляя ими я могу рисовать все что угодно, хоть операционку. Много изучаю, самоучка, но щас гоп стоп словил, не знаю что надо изучать чтоб сделать задуманное. Очень выручите.
Крутой ты проект замутил 😎 я думаю что нужно WinApi посмотреть, в Винде всякие подобные штуки с помощью системных функций делаются.
Есть вот функция DrawText например. Ну и библиотеки виднусятские подключать надо для их вызова user32.dll и kernel32.dll. Точнее не могу сказать, не пробовал такого))
@@Bytepp проект правда хорош, сам проработал вид изделия, как крепить и монтировать, рассчитал схему, спаял, написал программу.. И понял что могу операционную систему создать, свой язык программирования, в общем эврика 😁 меня посетила и я понял принцип всего. Сам разработал лёд куб 8×8×8, написал на асемблере программу и можно с пк клавиатуры также выводить символы но только в 3d. А недавно решил поиграть с мониторами чтоб с клавиатуры выводить информацию на жк телевизоре. Решил в начале попробовать как на компе это делается на машинном уровне, но информации не нашёл. Второй день гугл и ютюб трещат но ни чего не нашёл. Возможно не правильно ищу так как не знаю что искать. Бросился во все тяжкие, спрашиваю у программистов.) Мысль понял вашу, просмотреть бмблеотеки в вин апи, системные функции. Надо попробовать, может поможет, спасибо)
@@hekto_pyc9998, успехов))
@@Bytepp мне бы зацепится, нарисовать хоть квадратик без сторонних программ, дальше бы уже сам операционку начал писать и язык программирования на старославянском, пусть примитивно и долго, зато новое и можно свои мини компы создавать для чпу станков, теплиц и т.д. Вам тоже успехов и достижения ваших целей)
@@hekto_pyc9998, благодарю))