哥们最近遇到点问题是关于WMI方面的.
需要这方面的知识:
各位哥们能否提供一些相关的资料,
简单示例,
要注意的问题等等,
小技巧等....
分不够的话,可以另开分贴.放分原则(回贴启示)
主不对题者-----------------无分,
左右而言它者---------------无分,
讨论相关问题者-------------无分,提供答案者-----------------有分,
提供思路者-----------------有分,
提供参考者-----------------有分.乱贴广告者-----------------鄙视!
冒充内行者-------------严重鄙视!
需要这方面的知识:
各位哥们能否提供一些相关的资料,
简单示例,
要注意的问题等等,
小技巧等....
分不够的话,可以另开分贴.放分原则(回贴启示)
主不对题者-----------------无分,
左右而言它者---------------无分,
讨论相关问题者-------------无分,提供答案者-----------------有分,
提供思路者-----------------有分,
提供参考者-----------------有分.乱贴广告者-----------------鄙视!
冒充内行者-------------严重鄙视!
有关更多信息,请参见位于 <SDK>v1.1\Samples\Technologies\Interop\Applications\WMI 的自述文件
WMI是英文Windows Management Instrumentation的简写,它的功能主要是:访问本地主机的一些信息和服务,可以管理远程计算机(当然你必须要拥有足够的权限),比如:重启,关机,关闭进程,创建进程等。
2、 如何用WMI获得本地磁盘的信息?
首先要在VS.NET中创建一个项目,然后在添加引用中引用一个.net的装配件:System.Management.dll,这样你的项目才能使用WMI。代码如下:using System;
using System.Management;
class Sample_ManagementObject
{
public static int Main(string[] args)
{
SelectQuery query=new SelectQuery("Select * From Win32_LogicalDisk");
ManagementObjectSearcher searcher=new ManagementObjectSearcher(query);
foreach(ManagementBaseObject disk in searcher.Get())
{
Console.WriteLine("\r\n"+disk["Name"] +" "+disk["DriveType"] + " " + disk["VolumeName"]);
}
return 0;}
}
disk["DriveType"] 的返回值意义如下
1 No type
2 Floppy disk
3 Hard disk
4 Removable drive or network drive
5 CD-ROM
6 RAM disk
3、如何用WMI获得指定磁盘的容量?
using System;
using System.Management;// This example demonstrates reading a property of a ManagementObject.
class Sample_ManagementObject
{
public static int Main(string[] args)
{ManagementObject disk = new ManagementObject(
"win32_logicaldisk.deviceid=\"c:\"");
disk.Get();
Console.WriteLine("Logical Disk Size = " + disk["Size"] + " bytes");
Console.ReadLine();
return 0;
}
}
4、 如何列出机器中所有的共享资源?
using System;
using System.Management
class TestApp {
[STAThread]
static void Main()
{ManagementObjectSearcher searcher = new ManagementObjectSearcher(
"SELECT * FROM Win32_share");
foreach (ManagementObject share in searcher.Get())
{Console.WriteLine(share.GetText(TextFormat.Mof));
}
}
.NET可以完整地使用WMI的所有功能但是需要注意WMI在微软各个OS之间的支持度有差别
2000支持的98未必支持
注意MSDN上的兼容性说明