访问WMI的相关公用方法总结 -C#
2010-03-08 16:58
501 查看
访问WMI的相关公用方法总结 -C#
private static ManagementScope Connect(string namespaceString)
{
ConnectionOptions options = new ConnectionOptions();
ManagementScope scope = new ManagementScope(namespaceString, options);
scope.Connect();
return scope;
}
private static ManagementObject GetInstanceByName(string namespaceString, string className, string name)
{
ManagementScope scope = Connect(namespaceString);
ObjectQuery query = new ObjectQuery("SELECT * FROM " + className + " WHERE Name = '" + name + "'");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
ManagementObjectCollection results = searcher.Get();
foreach (ManagementObject manObject in results)
return manObject;
return null;
}
private static ManagementClass GetStaticByName(string namespaceString, string className)
{
ManagementScope scope = Connect(namespaceString);
ObjectGetOptions getOptions = new ObjectGetOptions();
ManagementPath path = new ManagementPath(className);
ManagementClass manClass = new ManagementClass(scope, path, getOptions);
return manClass;
}
public static ManagementObjectCollection GetInstanceByQuery(string namespaceString, string queryString)
{
ManagementScope scope = Connect(namespaceString);
ObjectQuery query = new ObjectQuery(queryString);
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
return searcher.Get();
}
public static int InvokeInstanceMethod(string namespaceString, string className, string name, string methodName)
{
return InvokeInstanceMethod(namespaceString, className, name, methodName, null);
}
public static int InvokeInstanceMethod(string namespaceString, string className, string name, string methodName, object[] parameters)
{
ManagementObject manObject = GetInstanceByName(namespaceString, className, name);
object result = manObject.InvokeMethod(methodName, parameters);
return Convert.ToInt32(result);
}
public static int InvokeStaticMethod(string namespaceString, string className, string methodName)
{
return InvokeStaticMethod(namespaceString, className, methodName, null);
}
public static int InvokeStaticMethod(string namespaceString, string className, string methodName, object[] parameters)
{
ManagementClass manClass = GetStaticByName(namespaceString, className);
object result = manClass.InvokeMethod(methodName, parameters);
return Convert.ToInt32(result);
}
private static ManagementScope Connect(string namespaceString)
{
ConnectionOptions options = new ConnectionOptions();
ManagementScope scope = new ManagementScope(namespaceString, options);
scope.Connect();
return scope;
}
private static ManagementObject GetInstanceByName(string namespaceString, string className, string name)
{
ManagementScope scope = Connect(namespaceString);
ObjectQuery query = new ObjectQuery("SELECT * FROM " + className + " WHERE Name = '" + name + "'");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
ManagementObjectCollection results = searcher.Get();
foreach (ManagementObject manObject in results)
return manObject;
return null;
}
private static ManagementClass GetStaticByName(string namespaceString, string className)
{
ManagementScope scope = Connect(namespaceString);
ObjectGetOptions getOptions = new ObjectGetOptions();
ManagementPath path = new ManagementPath(className);
ManagementClass manClass = new ManagementClass(scope, path, getOptions);
return manClass;
}
public static ManagementObjectCollection GetInstanceByQuery(string namespaceString, string queryString)
{
ManagementScope scope = Connect(namespaceString);
ObjectQuery query = new ObjectQuery(queryString);
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
return searcher.Get();
}
public static int InvokeInstanceMethod(string namespaceString, string className, string name, string methodName)
{
return InvokeInstanceMethod(namespaceString, className, name, methodName, null);
}
public static int InvokeInstanceMethod(string namespaceString, string className, string name, string methodName, object[] parameters)
{
ManagementObject manObject = GetInstanceByName(namespaceString, className, name);
object result = manObject.InvokeMethod(methodName, parameters);
return Convert.ToInt32(result);
}
public static int InvokeStaticMethod(string namespaceString, string className, string methodName)
{
return InvokeStaticMethod(namespaceString, className, methodName, null);
}
public static int InvokeStaticMethod(string namespaceString, string className, string methodName, object[] parameters)
{
ManagementClass manClass = GetStaticByName(namespaceString, className);
object result = manClass.InvokeMethod(methodName, parameters);
return Convert.ToInt32(result);
}
相关文章推荐
- C#与数据库访问技术总结(五)之Command对象的常用方法
- C# 数据库概念相关 访问MySQL的方法
- C#与数据库访问技术总结(八)之ExecuteNonQuery方法
- C#与数据库访问技术总结(十五)之 DataAdapter对象代码示例
- 【C#总结】setter和getter方法 ToString方法
- C#访问WMI信息
- 虚拟环境XP不能访问Linux 相关服务问题总结 推荐
- 用C#编写写字板相关总结
- C#实现adsl断线重连方法总结
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- C#中WinForm程序退出方法技巧总结
- Java 访问数据库 --java与DataBase相关知识总结(二)
- Java 访问数据库 --java与DataBase相关知识总结(四) java数据库连接池实现
- C#通过oledb访问access数据库的方法
- C#发送Email方法总结
- js对表单元素访问的方法总结
- 一次错误的总结(关于: 在实例方法和类方法公用一段代码)
- C#中字符串常用方法、访问修饰符
- c#网络访问总结
- 经验总结28--时间戳相关,C#