最近做一个项目碰到要实现查看本地和远程计算机的摘要信息,采用命令行msinfo32可以很快查看到,如下图:

需要在用C#来实现类似信息查看。尤其远程计算机的。。因此通过MSDN查询到。win32的API函数丰富,我先放一个我实现好的功能图

看看,如下图:

看上去是不是好像还可以。如何做到呢。下面继续请看实现的方式和源码

首先,你必须知道这个应用程序的功能是使用System.Management这个类得到的,using System.Management;

需要引用的DLL:System.Management.Automation.dll

下面是经常用的一些win32 的key

// 硬件
Win32_Processor, // CPU 处理器
Win32_PhysicalMemory, // 物理内存条
Win32_Keyboard, // 键盘
Win32_PointingDevice, // 点输入设备,包括鼠标。
Win32_FloppyDrive, // 软盘驱动器
Win32_DiskDrive, // 硬盘驱动器
Win32_CDROMDrive, // 光盘驱动器
Win32_BaseBoard, // 主板
Win32_BIOS, // BIOS 芯片
Win32_ParallelPort, // 并口
Win32_SerialPort, // 串口
Win32_SerialPortConfiguration, // 串口配置
Win32_SoundDevice, // 多媒体设置,一般指声卡。
Win32_SystemSlot, // 主板插槽 (ISA & PCI & AGP)
Win32_USBController, // USB 控制器
Win32_NetworkAdapter, // 网络适配器
Win32_NetworkAdapterConfiguration, // 网络适配器设置
Win32_Printer, // 打印机
Win32_PrinterConfiguration, // 打印机设置
Win32_PrintJob, // 打印机任务
Win32_TCPIPPrinterPort, // 打印机端口
Win32_POTSModem, // MODEM
Win32_POTSModemToSerialPort, // MODEM 端口
Win32_DesktopMonitor, // 显示器
Win32_DisplayConfiguration, // 显卡
Win32_DisplayControllerConfiguration, // 显卡设置
Win32_VideoController, // 显卡细节。
Win32_VideoSettings, // 显卡支持的显示模式。 

// 操作系统
Win32_TimeZone, // 时区
Win32_SystemDriver, // 驱动程序
Win32_DiskPartition, // 磁盘分区
Win32_LogicalDisk, // 逻辑磁盘
Win32_LogicalDiskToPartition, // 逻辑磁盘所在分区及始末位置。
Win32_LogicalMemoryConfiguration, // 逻辑内存配置
Win32_PageFile, // 系统页文件信息
Win32_PageFileSetting, // 页文件设置
Win32_BootConfiguration, // 系统启动配置
Win32_ComputerSystem, // 计算机信息简要
Win32_OperatingSystem, // 操作系统信息
Win32_StartupCommand, // 系统自动启动程序
Win32_Service, // 系统安装的服务
Win32_Group, // 系统管理组
Win32_GroupUser, // 系统组帐号
Win32_UserAccount, // 用户帐号
Win32_Process, // 系统进程
Win32_Thread, // 系统线程
Win32_Share, // 共享
Win32_NetworkClient, // 已安装的网络客户端
Win32_NetworkProtocol, // 已安装的网络协议 

既然有了这些资料。我们就可以开始动手编码了。附带代码1、实体类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//***************BIOS
namespace GetDNSListTool
{public class BIOSInfoEntity{//BIOS版本private string strBIOSVersion = string.Empty;/// <summary>/// BIOS版本/// </summary>public string BIOSVersion{get { return strBIOSVersion; }set { strBIOSVersion = value; }}//日期private string strBIOSReleaseDate = string.Empty;/// <summary>/// 日期/// </summary>public string BIOSReleaseDate{get { return strBIOSReleaseDate; }set { strBIOSReleaseDate = value; }}//SMBIOSprivate string strSMBIOS = string.Empty;/// <summary>/// SMBIOS/// </summary>public string SMBIOS{get { return strSMBIOS; }set { strSMBIOS = value; }}}
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//*****************计算机系统信息
namespace GetDNSListTool
{public class ComputerInfoEntity{//系统名称:Nameprivate string strName = string.Empty;/// <summary>/// 系统名称/// </summary>public string ComputerSystemName{get { return strName; }set { strName = value; }}//系统制造商:Manufacturerprivate string strManufacturer = string.Empty;/// <summary>/// 系统制造商/// </summary>public string ComputerManufacturer{get { return strManufacturer; }set { strManufacturer = value; }}//系统模式:Modelprivate string strModel = string.Empty;/// <summary>/// 系统模式/// </summary>public string ComputerSystemModel{get { return strModel; }set { strModel = value; }}//系统类型:SystemTypeprivate string strType = string.Empty;/// <summary>/// 系统类型/// </summary>public string ComputerSystemType{get { return strType; }set { strType = value; }}}
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//***************cpu信息
namespace GetDNSListTool
{public class CPUInfoEntity{#region 属性#region CPU名称string strCPUName = string.Empty;/// <summary>/// CPU名称/// </summary>public string CPUName{get { return strCPUName; }set { strCPUName = value; }}#endregion#region CPU序列号string strCPUID = string.Empty;/// <summary>/// CPU序列号/// </summary>public string CPUID{get { return strCPUID; }set { strCPUID = value; }}#endregion#region CPU个数int nCPUCount = 0;/// <summary>/// CPU个数/// </summary>public int CPUCount{get { return nCPUCount; }set { nCPUCount = value; }}#endregion#region CPU制造商string strCPUManufacturer = string.Empty;/// <summary>/// CPU制造商/// </summary>public string CPUManufacturer{get { return strCPUManufacturer; }set { strCPUManufacturer = value; }}#endregion#region 当前时钟频率string strCPUCurrentClockSpeed = string.Empty;/// <summary>/// 当前时钟频率/// </summary>public string CPUCurrentClockSpeed{get { return strCPUCurrentClockSpeed; }set { strCPUCurrentClockSpeed = value; }}#endregion#region 最大时钟频率string strCPUMaxClockSpeed = string.Empty;/// <summary>/// 最大时钟频率/// </summary>public string CPUMaxClockSpeed{get { return strCPUMaxClockSpeed; }set { strCPUMaxClockSpeed = value; }}#endregion#region 外部频率string strCPUExtClock = string.Empty;/// <summary>/// 外部频率/// </summary>public string CPUExtClock{get { return strCPUExtClock; }set { strCPUExtClock = value; }}#endregion#region 当前电压string strCPUCurrentVoltage = string.Empty;/// <summary>/// 当前电压/// </summary>public string CPUCurrentVoltage{get { return strCPUCurrentVoltage; }set { strCPUCurrentVoltage = value; }}#endregion#region 二级缓存string strCPUL2CacheSize = string.Empty;/// <summary>/// 二级缓存/// </summary>public string CPUL2CacheSize{get { return strCPUL2CacheSize; }set { strCPUL2CacheSize = value; }}#endregion#region 数据带宽string strCPUDataWidth = string.Empty;/// <summary>/// 数据带宽/// </summary>public string CPUDataWidth{get { return strCPUDataWidth; }set { strCPUDataWidth = value; }}#endregion#region 地址带宽string strCPUAddressWidth = string.Empty;/// <summary>/// 地址带宽/// </summary>public string CPUAddressWidth{get { return strCPUAddressWidth; }set { strCPUAddressWidth = value; }}#endregion#region 使用百分比float fCPUUsedPercent;/// <summary>/// 使用百分比/// </summary>public float CPUUsedPercent{get { return fCPUUsedPercent; }set { fCPUUsedPercent = value; }}#endregion#region CPU温度double strCPUTemperature;/// <summary>/// CPU温度/// </summary>public double CPUTemperature{get { return strCPUTemperature; }set { strCPUTemperature = value; }}#endregion#region CPU内核string strNumberOfCores ="";/// <summary>/// CPU内核/// </summary>public string CPUNumberOfCores{get { return strNumberOfCores; }set { strNumberOfCores = value; }}#endregion#region CPU逻辑处理器string strNumberOfLogicalProcessors = "";/// <summary>/// CPU逻辑处理器/// </summary>public string CPUNumberOfLogicalProcessors{get { return strNumberOfLogicalProcessors; }set { strNumberOfLogicalProcessors = value; }}#endregion#endregion}
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//*********************内存信息
namespace GetDNSListTool
{public class MemoryInfoEntity{#region 总的物理内存string strTotalVisibleMemorySize = string.Empty;  //总的物理内存public string TotalVisibleMemorySize{get { return strTotalVisibleMemorySize; }set { strTotalVisibleMemorySize = value; }}#endregion#region 可用物理内存string strFreePhysicalMemory = string.Empty;  //可用物理内存public string FreePhysicalMemory{get { return strFreePhysicalMemory; }set { strFreePhysicalMemory = value; }}#endregion#region 总的虚拟内存string strTotalVirtualMemorySize = string.Empty;  //总的虚拟内存public string TotalVirtualMemorySize{get { return strTotalVirtualMemorySize; }set { strTotalVirtualMemorySize = value; }}#endregion#region 可用虚拟内存string strFreeVirtualMemory = string.Empty;  //可用虚拟内存public string FreeVirtualMemory{get { return strFreeVirtualMemory; }set { strFreeVirtualMemory = value; }}#endregion#region 页面文件大小string strSizeStoredInPagingFiles = string.Empty;  //页面文件大小public string SizeStoredInPagingFiles{get { return strSizeStoredInPagingFiles; }set { strSizeStoredInPagingFiles = value; }}#endregion#region 可用页面文件大小string strFreeSpaceInPagingFiles = string.Empty;public string FreeSpaceInPagingFiles{get { return strFreeSpaceInPagingFiles; }set { strFreeSpaceInPagingFiles = value; }}#endregion}
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//*****************系统信息
namespace GetDNSListTool
{public class SystemInfoEntity{#region 属性#region OS名称string strOSName = string.Empty;  //OS名称/// <summary>/// OS名称/// </summary>public string OSName{get { return strOSName; }set { strOSName = value; }}#endregion#region OS版本string strOSVersion = string.Empty;  //OS版本/// <summary>/// OS版本/// </summary>public string OSVersion{get { return strOSVersion; }set { strOSVersion = value; }}#endregion#region OS制造商string strOSManufacturer = string.Empty;  //OS制造商/// <summary>/// OS制造商/// </summary>public string OSManufacturer{get { return strOSManufacturer; }set { strOSManufacturer = value; }}#endregion#region SP包版本/// <summary>/// SP包版本/// </summary>string strOSCSDVersion = string.Empty;public string OSCSDVersion{get { return strOSCSDVersion; }set { strOSCSDVersion = value; }}#endregion#region //Build版本string str0SBuildNumber= string.Empty;public string OSBuildNumber{get { return str0SBuildNumber; }set { str0SBuildNumber = value; }}#endregion#region Windows 目录string strWindowsDirectory = string.Empty;/// <summary>/// Windows 目录/// </summary>public string WindowsDirectory{get { return strWindowsDirectory; }set { strWindowsDirectory = value; }}#endregion#region 系统目录string strSystemDirectory = string.Empty;  //系统目录/// <summary>/// 系统目录/// </summary>public string SystemDirectory{get { return strSystemDirectory; }set { strSystemDirectory = value; }}#endregion#region 启动设备string strBootDevice = string.Empty;  //启动设备/// <summary>/// //启动设备/// </summary>public string BootDevice{get { return strBootDevice; }set { strBootDevice = value; }}#endregion#region 地区string strCountry = string.Empty;  //地区/// <summary>/// 地区/// </summary>public string Country{get { return strCountry; }set { strCountry = value; }}#endregion#region 时区string strTimeZone = string.Empty;  //时区/// <summary>/// 时区/// </summary>public string TimeZone{get { return strTimeZone; }set { strTimeZone = value; }}#endregion#region 总的物理内存string strTotalVisibleMemorySize = string.Empty;  //总的物理内存/// <summary>/// 总的物理内存/// </summary>public string TotalVisibleMemorySize{get { return strTotalVisibleMemorySize; }set { strTotalVisibleMemorySize = value; }}#endregion#region 可用物理内存string strFreePhysicalMemory = string.Empty;  //可用物理内存/// <summary>/// 可用物理内存/// </summary>public string FreePhysicalMemory{get { return strFreePhysicalMemory; }set { strFreePhysicalMemory = value; }}#endregion#region 总的虚拟内存string strTotalVirtualMemorySize = string.Empty;  //总的虚拟内存/// <summary>/// 总的虚拟内存/// </summary>public string TotalVirtualMemorySize{get { return strTotalVirtualMemorySize; }set { strTotalVirtualMemorySize = value; }}#endregion#region 可用虚拟内存string strFreeVirtualMemory = string.Empty;  //可用虚拟内存/// <summary>/// 可用虚拟内存/// </summary>public string FreeVirtualMemory{get { return strFreeVirtualMemory; }set { strFreeVirtualMemory = value; }}#endregion#region 页面文件大小string strSizeStoredInPagingFiles = string.Empty;  //页面文件大小/// <summary>/// 页面文件大小/// </summary>public string SizeStoredInPagingFiles{get { return strSizeStoredInPagingFiles; }set { strSizeStoredInPagingFiles = value; }}#endregion#region 可用页面文件大小string strFreeSpaceInPagingFiles = string.Empty;/// <summary>/// 可用页面文件大小/// </summary>public string FreeSpaceInPagingFiles{get { return strFreeSpaceInPagingFiles; }set { strFreeSpaceInPagingFiles = value; }}#endregion#region 页面文件大小string strFileSize = string.Empty;/// <summary>/// 页面文件大小/// </summary>public string FileSize{get { return strFileSize; }set { strFileSize = value; }}#endregion#region 页面文件string strFileName = string.Empty;/// <summary>/// 页面文件大小/// </summary>public string FileName{get { return strFileName; }set { strFileName = value; }}#endregion#endregion}
}

2、核心实现类

#region//获取CPU参数/// <summary>/// 获取CPU参数/// </summary>/// <returns></returns>public List<CPUInfoEntity> GetCPUInfo(){//返回值List<CPUInfoEntity> cpuInfoList = new List<CPUInfoEntity>();try{//值ManagementObjectCollection moCollection = null;//如果是本地if (isLocal){ManagementClass mClass = new ManagementClass("Win32_Processor");//获取Win32_Processor这个类的所有实例moCollection = mClass.GetInstances();}//表示远程else{//设定通过WMI要查询的内容ObjectQuery Query = new ObjectQuery("select * from Win32_Processor");//WQL语句,设定的WMI查询内容和WMI的操作范围,检索WMI对象集合ManagementObjectSearcher Searcher = new ManagementObjectSearcher(Ms, Query);//异步调用WMI查询moCollection = Searcher.Get();}//循环if (moCollection != null){//foreach,cpu可能有多个foreach (ManagementObject mObject in moCollection){CPUInfoEntity cpuInfo = new CPUInfoEntity();cpuInfo.CPUCount = moCollection.Count;cpuInfo.CPUName = mObject["Name"].ToString(); //获取CPU名称cpuInfo.CPUID = mObject["ProcessorId"].ToString(); //获取 CPU IDcpuInfo.CPUManufacturer = mObject["Manufacturer"].ToString(); //获取CPU制造商cpuInfo.CPUCurrentClockSpeed = mObject["CurrentClockSpeed"].ToString(); //获取当前时钟频率cpuInfo.CPUMaxClockSpeed = mObject["MaxClockSpeed"]==null?string.Empty:mObject["MaxClockSpeed"].ToString(); //获取最大时钟频率cpuInfo.CPUExtClock = mObject["ExtClock"]==null?string.Empty:mObject["ExtClock"].ToString(); //获取外部频率cpuInfo.CPUCurrentVoltage = mObject["CurrentVoltage"]==null?string.Empty:mObject["CurrentVoltage"].ToString(); //获取当前电压cpuInfo.CPUL2CacheSize =mObject["L2CacheSize"]==null?string.Empty:mObject["L2CacheSize"].ToString(); //获取二级缓存cpuInfo.CPUDataWidth =mObject["DataWidth"]==null?string.Empty:mObject["DataWidth"].ToString(); //获取数据带宽cpuInfo.CPUAddressWidth =mObject["AddressWidth"]==null?string.Empty:mObject["AddressWidth"].ToString(); //获取地址带宽cpuInfo.CPUNumberOfCores = mObject["NumberOfCores"]==null?string.Empty:mObject["NumberOfCores"].ToString(); //内核cpuInfo.CPUNumberOfLogicalProcessors = mObject["NumberOfLogicalProcessors"]==null?string.Empty:mObject["NumberOfLogicalProcessors"].ToString();    //逻辑处理器cpuInfo.CPUUsedPercent =mObject["LoadPercentage"]==null?0: float.Parse(mObject["LoadPercentage"].ToString());//加入进去
                       cpuInfoList.Add(cpuInfo);//
                       }}}catch(Exception ex){throw ex;}//
           return cpuInfoList;}#endregion#region//获取操作系统参数/// <summary>/// 获取操作系统参数/// </summary>/// <returns></returns>public SystemInfoEntity GetSystemInfo(){//返回值SystemInfoEntity systemInfoList = new SystemInfoEntity();try{//值ManagementObjectCollection moCollection = null;//如果是本地if (isLocal){ManagementClass mClass = new ManagementClass("Win32_OperatingSystem");//获取Win32_Processor这个类的所有实例moCollection = mClass.GetInstances();}//表示远程else{//设定通过WMI要查询的内容ObjectQuery Query = new ObjectQuery("select * from Win32_OperatingSystem");//WQL语句,设定的WMI查询内容和WMI的操作范围,检索WMI对象集合ManagementObjectSearcher Searcher = new ManagementObjectSearcher(Ms, Query);//异步调用WMI查询moCollection = Searcher.Get();}//循环if (moCollection != null){//foreachforeach (ManagementObject mObject in moCollection){systemInfoList.OSName = mObject["Caption"].ToString();  //获取OS 名称systemInfoList.OSManufacturer = mObject["Manufacturer"].ToString();  //获取 OS 制造商systemInfoList.Country = mObject["CountryCode"].ToString();  //地区systemInfoList.OSName = mObject["CSName"].ToString();  //获取系统名称systemInfoList.WindowsDirectory = mObject["WindowsDirectory"].ToString();  //获取Windows 目录systemInfoList.SystemDirectory = mObject["SystemDirectory"].ToString();  //获取系统目录systemInfoList.BootDevice = mObject["BootDevice"].ToString();  //获取启动设备systemInfoList.OSVersion = mObject["Version"].ToString();//获取版本systemInfoList.OSCSDVersion = mObject["CSDVersion"].ToString();//获取SPsystemInfoList.OSBuildNumber = mObject["BuildNumber"].ToString();//获取builderNumbersystemInfoList.TotalVisibleMemorySize = ((ulong)mObject["TotalVisibleMemorySize"] / 1024.0 / 1024).ToString("#0.00") + "G";  //获取总的物理内存systemInfoList.FreePhysicalMemory = ((ulong)mObject["FreePhysicalMemory"] / 1024.0 / 1024).ToString("#0.00") + "G";  //获取可用物理内存systemInfoList.TotalVirtualMemorySize = ((ulong)mObject["TotalVirtualMemorySize"] / 1024.0 / 1024).ToString("#0.00") + "G";   //获取总的虚拟内存systemInfoList.FreeVirtualMemory = ((ulong)mObject["FreeVirtualMemory"] / 1024.0 / 1024).ToString("#0.00") + "G";  //获取可用虚拟内存systemInfoList.SizeStoredInPagingFiles = ((ulong)mObject["SizeStoredInPagingFiles"] / 1024.0 / 1024).ToString("#0.00") + "G";  //获取页面文件大小
}}}catch (Exception ex){throw ex;}//
           return systemInfoList;}#endregion#region//获取时间区域/// <summary>/// 获取时间区域/// </summary>/// <returns></returns>public SystemInfoEntity GetTimeZoneInfo(){//返回值SystemInfoEntity systemInfoList = new SystemInfoEntity();try{//值ManagementObjectCollection moCollection = null;//如果是本地if (isLocal){ManagementClass mClass = new ManagementClass("Win32_TimeZone");//获取Win32_Processor这个类的所有实例moCollection = mClass.GetInstances();}//表示远程else{//设定通过WMI要查询的内容ObjectQuery Query = new ObjectQuery("select * from Win32_TimeZone");//WQL语句,设定的WMI查询内容和WMI的操作范围,检索WMI对象集合ManagementObjectSearcher Searcher = new ManagementObjectSearcher(Ms, Query);//异步调用WMI查询moCollection = Searcher.Get();}//循环if (moCollection != null){//foreachforeach (ManagementObject mObject in moCollection){systemInfoList.OSName = mObject["StandardName"].ToString();  //时区
                    }}}catch (Exception ex){throw ex;}//
           return systemInfoList;}#endregion#region//获取页面文件/// <summary>/// 获取页面文件/// </summary>/// <returns></returns>public SystemInfoEntity GetPageFileInfo(){//返回值SystemInfoEntity systemInfoList = new SystemInfoEntity();try{//值ManagementObjectCollection moCollection = null;//如果是本地if (isLocal){ManagementClass mClass = new ManagementClass("Win32_PageFile");//获取Win32_Processor这个类的所有实例moCollection = mClass.GetInstances();}//表示远程else{//设定通过WMI要查询的内容ObjectQuery Query = new ObjectQuery("select * from Win32_PageFile");//WQL语句,设定的WMI查询内容和WMI的操作范围,检索WMI对象集合ManagementObjectSearcher Searcher = new ManagementObjectSearcher(Ms, Query);//异步调用WMI查询moCollection = Searcher.Get();}//循环if (moCollection != null){//foreachforeach (ManagementObject mObject in moCollection){long FileSize = mObject["FileSize"] == null ?0 : long.Parse(mObject["FileSize"].ToString());//页面文件大小//计算systemInfoList.FileSize = (FileSize / 1024 / 1024 ).ToString("#0.00") + "G";systemInfoList.FileName = mObject["Name"].ToString();  //页面文件
}}}catch (Exception ex){throw ex;}//
           return systemInfoList;}#endregion#region//获取BIOS信息/// <summary>/// 获取BIOS信息/// </summary>/// <returns></returns>public BIOSInfoEntity GetBIOSInfo(){//返回值BIOSInfoEntity BIOSInfoList = new BIOSInfoEntity();try{//值ManagementObjectCollection moCollection = null;//如果是本地if (isLocal){ManagementClass mClass = new ManagementClass("Win32_BIOS");//获取Win32_Processor这个类的所有实例moCollection = mClass.GetInstances();}//表示远程else{//设定通过WMI要查询的内容ObjectQuery Query = new ObjectQuery("select * from Win32_BIOS");//WQL语句,设定的WMI查询内容和WMI的操作范围,检索WMI对象集合ManagementObjectSearcher Searcher = new ManagementObjectSearcher(Ms, Query);//异步调用WMI查询moCollection = Searcher.Get();}//循环if (moCollection != null){//foreachforeach (ManagementObject mObject in moCollection){BIOSInfoList.BIOSReleaseDate = mObject["ReleaseDate"] ==null?string.Empty:getDateTimeFromDmtfDate(mObject["ReleaseDate"].ToString());  //时间
BIOSInfoList.BIOSVersion = mObject["Manufacturer"].ToString();  //Manufacturer
BIOSInfoList.SMBIOS = mObject["SMBIOSBIOSVersion"].ToString();  //SMBIOSBIOSVersion
}}}catch (Exception ex){throw ex;}//
           return BIOSInfoList;}#endregion#region//获取计算机信息/// <summary>/// 获取计算机信息/// </summary>/// <returns></returns>public ComputerInfoEntity  GetComputerInfo(){//返回值ComputerInfoEntity ComputerInfoList = new ComputerInfoEntity();try{//值ManagementObjectCollection moCollection = null;//如果是本地if (isLocal){ManagementClass mClass = new ManagementClass("Win32_ComputerSystem");//获取Win32_Processor这个类的所有实例moCollection = mClass.GetInstances();}//表示远程else{//设定通过WMI要查询的内容ObjectQuery Query = new ObjectQuery("select * from Win32_ComputerSystem");//WQL语句,设定的WMI查询内容和WMI的操作范围,检索WMI对象集合ManagementObjectSearcher Searcher = new ManagementObjectSearcher(Ms, Query);//异步调用WMI查询moCollection = Searcher.Get();}//循环if (moCollection != null){//foreachforeach (ManagementObject mObject in moCollection){ComputerInfoList.ComputerSystemName = mObject["Name"].ToString();//系统名称ComputerInfoList.ComputerManufacturer = mObject["Manufacturer"].ToString();//系统制造商ComputerInfoList.ComputerSystemModel = mObject["Model"].ToString();//系统模式ComputerInfoList.ComputerSystemType = mObject["SystemType"].ToString();//系统类型
                      }}}catch (Exception ex){throw ex;}//
           return ComputerInfoList;}#endregion

通过UI界面进行调用即可完成。看上去是不是很简单的。其实真的很简单。。当然要注意点。连接远程计算机代码核心部分如下:

 /// <summary>/// 远程计算机构造函数/// </summary>/// <param name="hostName">远程计算机名称</param>/// <param name="userName">>远程计算机用户名</param>/// <param name="passWd">>远程计算机密码</param>public WMI32BLL(string hostName,string userName,string passWd){try{//表示远程isLocal = false;//创建远程连接//设定生成的WMI所需的所有设置Conn = new ConnectionOptions();//设定用于WMI连接操作的用户名Conn.Username = userName;//设定用户的口令Conn.Password = passWd;//设定用于执行WMI操作的范围Ms = new ManagementScope("\\\\" + hostName + "\\root\\cimv2", Conn);//连接到实际操作的WMI范围
               Ms.Connect();}catch(Exception ex){throw ex;}}

好了,大功告成。效果图在前面大家看过了。这里不再贴图了。

转载于:https://www.cnblogs.com/love007/p/5148206.html

C#通过WMI的wind32 的API函数实现msinfo32的本地和远程计算机的系统摘要信息查看功能...相关推荐

  1. C#通过WMI的wind32 的API函数实现msinfo32的本地和远程计算机的系统摘要信息查看功能

    最近做一个项目碰到要实现查看本地和远程计算机的摘要信息,采用命令行msinfo32可以很快查看到,如下图: 需要在用C#来实现类似信息查看.尤其远程计算机的..因此通过MSDN查询到.win32的AP ...

  2. java获取 msinfo32 api_C#通过WMI的wind32 的API函数实现msinfo32的本地和远程计算机的系统日志查看功能...

    #region//获取日志文件 /// ///获取日志文件/// /// 多少条 /// 事件ID /// 开始时间 /// 结束时间 /// 返回集合 public List GetEventLog ...

  3. C#通过WMI的wind32 的API函数实现msinfo32的本地和远程计算机的系统日志查看功能...

    先不说如何实现,先来看看效果图: 读取远程的需要提供下远程的计算用户名和密码即可. 如何实现这个代码功能,请看如下代码部分: 实体类: using System; using System.Colle ...

  4. 用Debug函数实现API函数的跟踪

    用Debug函数实现API函数的跟踪 如果我们能自己编写一个类似调试器的功能,这个调试器需要实现我们对于跟踪监视工具的要求,即自动记录输入输出参数,自动让目标进程继续运行.下面我们就来介绍在不知道函数 ...

  5. 动态获取API函数地址---对抗win7 aslr安全机制

    本人近期在研究缓冲区溢出,在学习中发现,win7下系统关键函数的地址随机化了(每次重启后地址有变),为了解决地址定位问题,在偌大的互联网上找了好久,贴来分享下,以作备用. -------------- ...

  6. 剑走偏锋--使用WMI获取远程计算机进程程序集中查毒病毒打造内网安全环境

    剑走偏锋-使用WMI获取远程计算机进程程序 集中查毒病毒打造内网安全环境 作者:高玉涵 时间:2019.04.1815:45 博客:blog.csdn.net/cg_i 作者背景环境参见: <由 ...

  7. //5. 有若干本图书,图书信息包括图书书名、作者、出版社和价格。要求输出图书价格(const成员函数), //显示图书书名、作者、出版社(非const成员函数)、根据图书书名查找图书并显示相关信息等

    //5. 有若干本图书,图书信息包括图书书名.作者.出版社和价格.要求输出图书价格(const成员函数), //显示图书书名.作者.出版社(非const成员函数).根据图书书名查找图书并显示相关信息等 ...

  8. C/C++通过WMI和系统API函数获取获取系统硬件配置信息(转)

    前段时间由于项目需要,要求做一个服务器的实时性能监控(CPU.内存.网络利用率等)和读取服务器的硬件配置参数的接口供项目组使用,就是一个类似于鲁大师之类的东东吧... 当然第一想法肯定是利用Windo ...

  9. C/C++通过WMI和系统API函数获取获取系统硬件(cpu,内存,显卡,网卡)配置信息

     转自:http://blog.csdn.net/ly402609921/article/details/7446943 前段时间由于项目需要,要求做一个服务器的实时性能监控(CPU.内存.网络利 ...

最新文章

  1. 情人节 html5,情人节H5案例 | 2019第一波情人节营销已上线
  2. Python核心资料:Django+Scrapy+Hadoop+数据挖掘+机器学习+精选视频(免费领)
  3. Streaming源码解读之接收流数据的全生命周期
  4. python 获取10位和13位 时间戳
  5. 国内免费Blog博客程序评测(含ASP/PHP/.net)
  6. python基础(part6)--容器类型之通用操作
  7. manjaro双系统 windows_Win10和Manjaro双系统安装记录
  8. powerdesigner显示工具面板_10分钟看懂Photoshop 绘画(画笔面板1-3)
  9. python drop_duplicates_Pandas drop_duplicates方法不起作用
  10. Elasticseach 从零开始学习记录(二) - Head插件
  11. python小说阅读器_用python实现自己的小说阅读器
  12. java 线程安全 计数_java – 实现线程安全共享计数器的功能方法
  13. 班服的图片展示和投票的实现
  14. StanfordDB class自学笔记 (7) SQL
  15. 富文本编辑器粘贴图片
  16. 利用IV分析仪测量二极管的伏安特性的测量方法及步骤
  17. TOR交换机和普通交换机有什么区别?
  18. Towify如何快速生成app安装教程
  19. Evernote 新搭档Evertracker,掌控自己的时间(视频)
  20. [刷题]leetcode\283_移动零

热门文章

  1. idea中实体类右击没有ptg_几个牛逼的IDEA插件,Java开发者撸码神器,还带动图的!...
  2. deepin linux桌面设置,Deepin系统的桌面样式:高效模式和时尚模式
  3. matlab pdist函数官方详解
  4. oracle 9I 存储过程复制,使用ADO.NET访问Oracle 9i存储过程(上)_oracle
  5. python统计字符串数字个数_python统计字符串中数字个数_后端开发
  6. 7、计算机图形学——图形管线渲染与纹理映射
  7. C++对象模型8——构造函数和析构函数中对虚函数的调用、全局对象构造和析构、局部static数组的内存分配
  8. sizebox模型下载_css 盒模型、box-sizing 学习笔记
  9. 书籍:Python机器学习蓝图第2版 Python Machine Learning Blueprints 2nd - 2019.pdf
  10. django syncdb命令失效