Models.PlatformInfo platformInfo = new Models.PlatformInfo(); string query = "Select * from {0}"; ///获取操做系统数据 SelectQuery queryOS = new SelectQuery(string.Format(query, WindowAPIType.Win32_OperatingSystem)); ManagementObjectSearcher searcher = new ManagementObjectSearcher(queryOS); foreach (ManagementBaseObject os in searcher.Get()) { platformInfo.Version = Convert.ToString(os["Version"]); platformInfo.Caption = Convert.ToString(os["Caption"]); platformInfo.SerialNumber = Convert.ToString(os["SerialNumber"]); platformInfo.SystemDirectory = Convert.ToString(os["SystemDirectory"]); platformInfo.OSArchitecture = Convert.ToString(os["OSArchitecture"]); platformInfo.InstallDate = Convert.ToString(os["InstallDate"]); platformInfo.Organization = Convert.ToString(os["Organization"]); }
其中能够使用os.GetText(TextFormat.Mof);来获取详细的信息。
目前我查到的能够获取的API接口有以下:c#
/// <summary> /// Window Api名称 /// </summary> public enum WindowAPIType { /// <summary> /// 内存 /// </summary> Win32_PhysicalMemory, /// <summary> /// CPU /// </summary> Win32_Processor, /// <summary> /// 硬盘 /// </summary> Win32_DiskDrive, /// <summary> /// 电脑型号 /// </summary> Win32_ComputerSystemProduct, /// <summary> /// 分辨率 /// </summary> Win32_DesktopMonitor, /// <summary> /// 显卡细节 /// </summary> Win32_VideoController, /// <summary> /// 操做系统 /// </summary> Win32_OperatingSystem, /// <summary> /// 网络适配器 /// </summary> Win32_NetworkAdapter, /// <summary> /// 网络适配器设置 /// </summary> Win32_NetworkAdapterConfiguration, /// <summary> /// 操做系统登陆 /// </summary> Win32_ComputerSystem, /// <summary> /// 键盘 /// </summary> Win32_Keyboard, /// <summary> /// 点输入设备,包括鼠标 /// </summary> Win32_PointingDevice, /// <summary> /// 主板 /// </summary> Win32_BaseBoard, /// <summary> /// BIOS芯片 /// </summary> Win32_BIOS, /// <summary> /// 光盘驱动盘 /// </summary> Win32_CDROMDrive, /// <summary> /// 并口 /// </summary> Win32_ParallelPort, /// <summary> /// 串口 /// </summary> Win32_SerialPort, /// <summary> /// 串口配置 /// </summary> Win32_SerialPortConfiguration, /// <summary> /// 多媒体,通常指声卡 /// </summary> Win32_SoundDevice, /// <summary> /// 主板插槽(ISA&PCI&AGP) /// </summary> Win32_SystemSlot, /// <summary> /// USB控制器 /// </summary> Win32_USBController, /// <summary> /// 打印机 /// </summary> Win32_Printer, /// <summary> /// 打印机设置 /// </summary> Win32_PrinterConfiguration, /// <summary> /// 打印机任务 /// </summary> Win32_PrintJob, /// <summary> /// 打印机端口 /// </summary> Win32_TCPIPPrinterPort, /// <summary> /// Modem /// </summary> Win32_POTSModem, /// <summary> /// MODEM端口 /// </summary> Win32_POTSModemToSerialPort, /// <summary> /// 显卡 /// </summary> Win32_DisplayConfiguration, /// <summary> /// 显卡设置 /// </summary> Win32_DisplayControllerConfiguration, /// <summary> /// 显示支持显示模式 /// </summary> Win32_VideoSettings, /// <summary> /// 时区 /// </summary> Win32_TimeZone, /// <summary> /// 驱动程序 /// </summary> Win32_SystemDriver, /// <summary> /// 磁盘分区 /// </summary> Win32_DiskPartition, /// <summary> /// 逻辑磁盘 /// </summary> Win32_LogicalDisk, /// <summary> /// 逻辑磁盘所在分区及始末位置 /// </summary> Win32_LogicalDiskToPartition, /// <summary> /// 逻辑内存配置 /// </summary> Win32_LogicalMemoryConfiguration, /// <summary> /// 系统页文件信息 /// </summary> Win32_PageFile, /// <summary> /// 页文件设置 /// </summary> Win32_PageFileSetting, /// <summary> /// 系统启动配置 /// </summary> Win32_BootConfiguration, /// <summary> /// 系统自动启动程序 /// </summary> Win32_StartupCommand, /// <summary> /// 系统安装的服务 /// </summary> Win32_Service, /// <summary> /// 系统管理组 /// </summary> Win32_Group, /// <summary> /// 系统组帐号 /// </summary> Win32_GroupUser, /// <summary> /// 用户帐户 /// </summary> Win32_UserAccount, /// <summary> /// 系统进程 /// </summary> Win32_Process, /// <summary> /// 系统线程 /// </summary> Win32_Thread, /// <summary> /// 共享 /// </summary> Win32_Share, /// <summary> /// 已安装的网络客户端 /// </summary> Win32_NetworkClient, /// <summary> /// 已安装的网络协议 /// </summary> Win32_NetworkProtocol, }
查询都是一致的:"Select * from {0}"
这样就能获取到想要获取到的信息了。
获取开机时间:网络
/// <summary> /// 获取开机运行时间 /// </summary> /// <returns></returns> public string GetRunTime() { TimeSpan ts = TimeSpan.FromMilliseconds(Environment.TickCount); return ts.ToString(); }
获取CPU使用率能够使用性能计数器组件。ide
private PerformanceCounter performance = new PerformanceCounter("Processor", "% Processor Time", "_Total", true); this.performance.MachineName = "."; this.performance.NextValue(); /// <summary> /// CPU使用率 /// </summary> /// <returns></returns> public string GetCPU() { return this.performance.NextValue().ToString("F1") + "%"; }