我有一个示例代码,如下所示
using System;
using System.Collections.Generic;
using System.Linq;
using System.Management;
using System.Text;
namespace WMIIRQ
{
class Program
{
static void Main(string[] args)
{
foreach(ManagementObject Memory in new ManagementObjectSearcher(
"select * from Win32_DeviceMemoryAddress").Get())
{
Console.WriteLine("Address=" + Memory["Name"]);
// associate Memory addresses with Pnp Devices
foreach(ManagementObject Pnp in new ManagementObjectSearcher(
"ASSOCIATORS OF {Win32_DeviceMemoryAddress.StartingAddress='" + Memory["StartingAddress"] + "'} WHERE RESULTCLASS = Win32_PnPEntity").Get())
{
Console.WriteLine(" Pnp Device =" + Pnp["Caption"]);
// associate Pnp Devices with IRQ
foreach(ManagementObject IRQ in new ManagementObjectSearcher(
"ASSOCIATORS OF {Win32_PnPEntity.DeviceID='" + Pnp["PNPDeviceID"] + "'} WHERE RESULTCLASS = Win32_IRQResource").Get())
{
Console.WriteLine(" IRQ=" + IRQ["Name"]);
}
}
}
Console.ReadLine();
}
}
}
我不熟悉c#,我从一些链接获得了这个代码,我需要一些c ++方法,以便我可以按照上面提到的代码执行完整的操作。我搜索了很多,但我不能完全满足我的需求。有人可以建议我获得它的方法。在此先感谢。
答案 0 :(得分:0)
Microsoft提供了非常全面的文档,介绍了如何执行此操作here。
您基本上必须使用COM来启动所需的所有对象类型,调用查询,然后在最后明确清理。这很麻烦,但它确实有效。