最近做一个项目碰到要实现查看本地和远程计算机的摘要信息,采用命令行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();  //ManufacturerBIOSInfoList.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;}}

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

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. python常见的文本处理-fasta文件格式处理
  2. oracle 从dbf恢复,oracle 误删 dbf 恢复
  3. php链接远程socket,php使用socket获取远程图片
  4. iLogtail 与Filebeat 性能对比
  5. 面试经历-19-03-14
  6. python画柱状图-Python 使用 matplotlib 画柱状图教程
  7. 张正友相机标定法--相机去畸变(C++)
  8. MATLAB信号的带宽估计及求带宽(3dB,90%带宽)
  9. python调用有道翻译_Python通过调用有道翻译api实现翻译功能示例
  10. 一个茴字有三种写法——吐槽C#9.0的Records
  11. 兔子maya骨骼绑定_玛雅Maya模型怎么绑定骨骼? 玛雅Maya骨骼绑定教程
  12. C语言程序设计笔记(浙大翁恺版) 第八周:数组
  13. linux云计算工程师百度百科,广州学习linux云计算工程师
  14. Latex公式字母加粗
  15. 光谱分布、光谱辐射通量密度与不同时间段分布光谱(图示)
  16. linux怎么移植安卓rom,【经验技巧】任意手机移植ROM 教程,超详细ROM 技术详细......
  17. 蛮力法之百鸡百钱问题
  18. Web安全攻防 信息收集篇(仅供交流学习使用,请勿用于非法用途)
  19. 这些渐行渐远的友情,你有过吗?
  20. python实现【冒泡排序】(bubbleSort)

热门文章

  1. Android 主题风格(ThemeStyle)介绍
  2. mongodb orm java_基于Java的ORM框架 Mongodb-ORM
  3. Ubuntu 2004重启网卡
  4. 集成项目管理交付清单
  5. 重启电脑连接不上数据库
  6. vue 3.0 项目 目录说明
  7. shiro+springboot自定义sessionId
  8. 轻量级的Linux发行版:4MLinux稳定版发布
  9. 八个最好的轻量级Linux发行版
  10. 中国超级计算机有多重,炸裂!地球上的所有DNA加起来有多重?