Определение типа системного диска на c#
Цитата: oixro от 21.02.2024, 03:05Добрый день, столкнулся с необходимостью определить на каком диске установлена Windows (SSD или HDD) для моей программы.
WMI никак не смог мне помочь, и потратив 2 дня на безуспешные попытки, костылём оставил smartctl.exe, но она добавляет 1мб к весу и так маленкой программы.
Может кто может подсказать более рациональный способ определения типа диска C: (SSD или HDD). Заранее спасибо!
Добрый день, столкнулся с необходимостью определить на каком диске установлена Windows (SSD или HDD) для моей программы.
WMI никак не смог мне помочь, и потратив 2 дня на безуспешные попытки, костылём оставил smartctl.exe, но она добавляет 1мб к весу и так маленкой программы.
Может кто может подсказать более рациональный способ определения типа диска C: (SSD или HDD). Заранее спасибо!
Цитата: Юрий от 14.08.2024, 20:40Попробуй класс DriveInfo. Я помню проверял там тип диска (съемный или нет)
Попробуй класс DriveInfo. Я помню проверял там тип диска (съемный или нет)
Цитата: Adler от 15.08.2024, 03:28Приветствую.
[spoiler title="Это не работает?"]ManagementScope scope = new ManagementScope(@"\\.\root\microsoft\windows\storage"); ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM MSFT_PhysicalDisk"); string type = ""; scope.Connect(); searcher.Scope = scope; foreach (ManagementObject queryObj in searcher.Get()) { switch (Convert.ToInt16(queryObj["MediaType"])) { case 1: type = "Unspecified"; break; case 3: type = "HDD"; break; case 4: type = "SSD"; break; case 5: type = "SCM"; break; default: type = "Unspecified"; break; } } searcher.Dispose();[/spoiler]
Приветствую.
ManagementScope scope = new ManagementScope(@"\\.\root\microsoft\windows\storage");
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM MSFT_PhysicalDisk");
string type = "";
scope.Connect();
searcher.Scope = scope;
foreach (ManagementObject queryObj in searcher.Get())
{
switch (Convert.ToInt16(queryObj["MediaType"]))
{
case 1:
type = "Unspecified";
break;
case 3:
type = "HDD";
break;
case 4:
type = "SSD";
break;
case 5:
type = "SCM";
break;
default:
type = "Unspecified";
break;
}
}
searcher.Dispose();