zoukankan      html  css  js  c++  java
  • wmi with dot net

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Management;

    namespace GetSystemInfo
    {
        
    class GetSystemInfo
        {
            
    static void Main(string[] args)
            {
                
    if (1 != args.Length)
                {
                    
    return;
                }

                
    //
                
    // List Processes
                string strComputerName = args[0];
                
    string strScopePath = string.Format("\\\\{0}\\root\\cimv2", strComputerName);

                ManagementScope scope 
    = new ManagementScope(strScopePath);
                scope.Connect();
                ObjectQuery query 
    = new ObjectQuery("SELECT * FROM Win32_Process");
                ManagementObjectSearcher searcher 
    = new ManagementObjectSearcher(scope, query);
                ManagementObjectCollection colProcesses 
    = searcher.Get();

                
    foreach (ManagementObject oProcess in colProcesses)
                {
                    Console.WriteLine(
    "{0}\t{1}\t{2}", oProcess["ProcessId"], oProcess["Name"], oProcess["ExecutablePath"]);
                }

                
    //
                
    // Registry
                string strObjectPath = string.Format("\\\\{0}\\root\\DEFAULT:StdRegProv", strComputerName);
                ManagementClass oReg 
    = new ManagementClass(strObjectPath);
                
    object[] methodArgs = {0x80000002"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"null};
                
    object result = oReg.InvokeMethod("EnumValues", methodArgs);
                
    string[] arrValues = (string[])methodArgs[2];

                
    for (int i = 0; i < arrValues.Length; i++)
                {
                    
    object[] methodArgs1 = { 0x80000002"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", arrValues[i], null};
                    
    object result1 = oReg.InvokeMethod("GetStringValue", methodArgs1);
                    Console.WriteLine(
    "{0}\t{1}", arrValues[i], (string)methodArgs1[3]);
                }
            }
        }
    }
  • 相关阅读:
    Java自学-多线程 常见线程方法
    Java自学-多线程 启动一个线程
    Java自学-Lambda 聚合操作
    Java自学-Lambda 方法引用
    Java自学-Lambda 概念
    Java自学-泛型 泛型转型
    Java自学-泛型 通配符
    Java自学-泛型 支持泛型的类
    <VCC笔记> 关于Assertion
    <VCC笔记>VCC简介与安装
  • 原文地址:https://www.cnblogs.com/luoluo/p/602403.html
Copyright © 2011-2022 走看看