我正在开发一个Windows应用程序,这给现场的详细信息 - > X.
其中X是 - >
右击我的电脑>
Properties >
Device Manager > (select any Item - Say KeyBoard) >
Click it > standard PS/2 KeyBoard >
double Click standard PS/2 KeyBoard >
click the Details Tab >
根据该物业有喜欢的显示名称,问题代码,父母兄弟姐妹等,等各个领域?
我希望得到他们的价值观。 哪些Windows API我可以用这一点。 我这样做的Windows 7以及Windows 8。我希望API将保持我有64位机的same.Also。 这必须是任何装置,它的细节,我想从设备管理器知道真实的。
还我只是想所有的操作 - 阅读和否设置(写),所以我想我不会有与违反管理Rights.PLease提出任何问题! 我已经加入快照,仅供参考!例如说我想知道的HID USB鼠标投诉(D0(活动)或D2(休眠))的当前状态。
我需要得到这个电源状态D0。
这是很容易得到使用硬件信息ManagementObjectCollection 。
例如,为了获得从PC处理器的所有属性和值
var win32DeviceClassName = "win32_processor";
var query = string.Format("select * from {0}", win32DeviceClassName);
using (var searcher = new ManagementObjectSearcher(query))
{
ManagementObjectCollection objectCollection = searcher.Get();
foreach (ManagementBaseObject managementBaseObject in objectCollection)
{
foreach (PropertyData propertyData in managementBaseObject.Properties)
{
Console.WriteLine("Property: {0}, Value: {1}", propertyData.Name, propertyData.Value);
}
}
}
WIN32类名的完整列表,请http://msdn.microsoft.com/en-us/library/aa394084%28v=VS.85%29.aspx
干杯。
问题是标签与C#,尽管实际问题问的任何窗口API。 与在Win32 API的信息可以与被检索SetupDiGetDeviceRegistryProperty() 。 具体的步骤是:
- 获取设备信息为你通过感兴趣的设备设置SetupDiGetClassDevs() 。
- 经由通过设备的相关信息进行迭代SetupDiEnumDeviceInfo() 。
- 通过调用SetupDiGetDeviceRegistryProperty获取属性()。
- 损坏设备信息经由设置SetupDiDestroyDeviceInfoList() 。
根据文档的API可用于Windows 2000及更高版本。
你将有最简单的时间(我认为)与PowerShell的事情了。 如果你正在写一些C#代码,您可以使用在System.Management.Automation命名空间类型,如PowerShell的(链路执行PS脚本http://msdn.microsoft.com/en-us/library/system.management。 automation.powershell(v = vs.85)的.aspx ),但我会用PS控制台开始测试。
你首先应该(使用PowerShell)使用此命令探索您的环境中的WMI对象
Get-WmiObject -List -namespace root\CIMV2
然后,一旦你确定你正在寻找您可以检索使用此命令的那类信息类:
Get-WmiObject -namespace root\CIMV2 -class Win32_USBControllerDevice
一旦你的内容,你不得不分析文本。
更新:尝试使用这个命令来获得“国家”,“状态”,并在PC上的鼠标驱动程序的“入门”的属性:
gwmi Win32_SystemDriver | where {$_.DisplayName -like "*Mouse*"}