我的目標是獲取有關PC的數據。獲取HDD並將其中的所有分區列出並存儲在XML中。這適用於連接到PC的所有HDD。我知道如何創建XML,但無法達到分區和HDD的關聯。我嘗試了幾個教程,但沒有好的。有人可以展示如何從Win32_DiskDriveToDiskPartition類獲取信息嗎?如何獲取有關PC硬件的信息?
-1
A
回答
4
這裏是one link和another one到如何在C#中使用WMI。實際上,您可以輕鬆地通過Google找到C#中WMI的「如何...」的不同變體,並將其準確應用於您的需求。
對於您的任務,您需要使用Win32_DiskDrive,Win32_DiskDriveToDiskPartition和。
- Win32_DiskDrive列出磁盤。
- Win32_DiskPartition列出分區。
- Win32_DiskDriveToDiskPartition列出磁盤和分區之間的引用。
使用此方法:
static void PrintSystemInfo(XElement doc,
string className,
string[] properties)
{
ManagementObjectSearcher MOS =
new ManagementObjectSearcher("Select * from " + className);
XElement xClass = new XElement(className);
int count = 0;
foreach (ManagementObject o in MOS.Get())
{
XElement child = new XElement(string.Concat(className, count++));
for (int i = 0; i < properties.Length; i++)
{
try
{
child.Add(new XElement(properties[i], o[properties[i]]));
}
catch (Exception ex)
{
child.Add(new XElement(properties[i], ex.Message));
}
}
xClass.Add(child);
}
doc.Add(xClass);
}
這樣
string[] Win32_DiskDriveToDiskPartition_Properties = {
"Antecedent",
"Dependent"
};
string[] Win32_DiskPartition_Properties = {
"Name",
"DeviceID",
"Size",
"SystemName",
};
string[] Win32_DiskDrive_Properties = {
"Description",
"InterfaceType",
"Model",
"Name"
};
XElement doc = new XElement("SystemInfo");
PrintSystemInfo(doc, "Win32_DiskDrive", Win32_DiskDrive_Properties);
PrintSystemInfo(doc, "Win32_DiskDriveToDiskPartition", Win32_DiskDriveToDiskPartition_Properties);
PrintSystemInfo(doc, "Win32_DiskPartition", Win32_DiskPartition_Properties);
doc.Save("SystemInfo.xml");
它使用System.Management類訪問WMI tools。請記住將對System.Management的引用添加到項目引用列表中,否則將無法識別using System.Management;
聲明。
相關問題
- 1. 獲取硬件信息
- 2. Android:獲取移動硬件信息
- 3. WMI硬件,獲取RAM信息
- 4. 在Android上獲取硬件信息?
- 5. 安卓:獲取手機硬件信息
- 6. 用silverlight獲取硬件信息
- 7. 獲取未安裝硬件的硬件信息
- 8. ASP.net獲得硬件信息
- 9. 從PC獲取唯一的硬件ID
- 10. 如何獲取有關最近獲取的信息?
- 11. 如何獲取有關數據庫事件和參與者信息的信息
- 12. 如何在C++中獲得沒有WMI的硬件信息?
- 13. 如何獲取有關已發送電子郵件的信息?
- 14. 如何在Mail.app中獲取有關電子郵件的信息
- 15. 如何獲取有關ZIP文件的信息?
- 16. 如何在此處獲取有關發件人的信息
- 17. 如何從核心文件獲取有關崩潰的信息?
- 18. 如何獲取有關磁盤文件系統的信息?
- 19. 硬件信息
- 20. 如何在VB.NET 4.0中獲取系統硬件信息
- 21. 如何通過C庫獲取Linux硬件和系統信息?
- 22. 如何在Linux中使用C++獲取硬件信息
- 23. 如何獲取一些系統硬件信息?
- 24. Python Linux dmidecode,如何通過解析獲取硬件信息?
- 25. 如何使用C++在Windows中獲取硬件信息?
- 26. Android:如何使用adb命令獲取設備硬件信息?
- 27. 如何獲取有關發送短信的信息?
- 28. 如何獲取有關oracle中表關係的信息?
- 29. 如何獲取關係表的所有關聯信息?
- 30. 如何獲取有關沒有回調的元素的信息
不是C#,但[此答案](http://stackoverflow.com/a/12271778/62576)顯示瞭如何使用涉及的WMI接口。也許它會有所幫助。當你顯示你已經嘗試過的不起作用時,它也會有所幫助,所以我們至少可以看到它。 –