WMI获取信息补充(一)(Win32_Volume,Win32_EncryptableVolume,Win32_TPM)

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

namespace MachineState
{
    public class MachineStateHelper
    {
        /// <summary>
        /// Format Size
        /// </summary>
        /// <param name="size"></param>
        /// <returns></returns>
        public string GetSizeUseUnit(string size)
        {
            double dSpace = Convert.ToDouble(size);
            string sSpace = dSpace.ToString("N");
            string[] tmp;
            string rtnSize = "0";
            tmp = sSpace.Split(',');
            switch (tmp.GetUpperBound(0))
            {
                case 0:
                    rtnSize = tmp[0] + "bytes";
                    break;
                case 1:
                    rtnSize = tmp[0] + "." + tmp[1].Substring(0, 2) + " K";
                    break;
                case 2:
                    rtnSize = tmp[0] + "." + tmp[1].Substring(0, 2) + " M";
                    break;
                case 3:
                    rtnSize = tmp[0] + "." + tmp[1].Substring(0, 2) + " G";
                    break;
                case 4:
                    rtnSize = tmp[0] + "." + tmp[1].Substring(0, 2) + " T";
                    break;
            }
            return rtnSize;
        }
        /// <summary>
        /// Get Computer Info
        /// </summary>
        /// <param name="scope"></param>
        public string GetComputerInfo(ManagementScope scope)
        {
            string result = string.Empty;
            SelectQuery query = new SelectQuery("Select * From Win32_ComputerSystem");
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
            ManagementObjectCollection moc = searcher.Get();
            foreach (ManagementObject mbObject in moc)
            {
                result += string.Format("Currently logged in user: {0}, Manufacturer: {1}, Model: {2}/r/n", mbObject["UserName"].ToString(), mbObject["Manufacturer"].ToString(), mbObject["Model"].ToString());
            }

            return result;
        }
        /// <summary>
        /// Get Operating System Information
        /// </summary>
        public string GetOperatingSystemInfo(ManagementScope scope)
        {
            string result = string.Empty;
            SelectQuery query = new SelectQuery("Select * From Win32_OperatingSystem");
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
            ManagementObjectCollection queryCollection = searcher.Get();

            foreach (ManagementBaseObject mbObject in queryCollection)
            {
                result += string.Format("Operating System: {0}, Serial Number: {1}/r/n", mbObject["Caption"].ToString(), mbObject["SerialNumber"].ToString());
            }

            return result;
        }
        /// <summary>
        /// Get CPU Information
        /// </summary>
        /// <param name="scope"></param>
        public string GetCPUInfo(ManagementScope scope)
        {
            string result = string.Empty;
            SelectQuery query = new SelectQuery("Select * From Win32_Processor");
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
            ManagementObjectCollection moc = searcher.Get();
            foreach (ManagementObject mbObject in moc)
            {
                result += string.Format("CPU:{0},Process ID:{1}/r/n", mbObject["Name"].ToString(), mbObject["ProcessorID"].ToString());
            }

            return result;
        }
        /// <summary>
        /// Win32_DiskDrive Get Hard Disk Information
        /// </summary>
        public string GetHardDiskInfo(ManagementScope scope)
        {
            string result = string.Empty;
            SelectQuery query = new SelectQuery("Select * From Win32_DiskDrive");
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
            ManagementObjectCollection queryCollection = searcher.Get();

            foreach (ManagementBaseObject mbObject in queryCollection)
            {
                result += string.Format("HardDisk ID:{0}, HardDisk Size:{1}/r/n", mbObject["Model"].ToString(), GetSizeUseUnit(mbObject["Size"].ToString()));
            }

            return result;
        }
        /// <summary>
        /// Get Main Board Info
        /// </summary>
        public string GetMainBoardInfo(ManagementScope scope)
        {
            string result = string.Empty;
            SelectQuery query = new SelectQuery("Select * From WIN32_BaseBoard");
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
            ManagementObjectCollection moc = searcher.Get();
            foreach (ManagementObject mbObject in moc)
            {
                result += string.Format("Serial Number:{0}, Manufacturer:{1}/r/n", mbObject["SerialNumber"].ToString(), mbObject["Manuf

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C/C是一种编程语言,而WMI是Windows Management Instrumentation的缩写,它是Windows操作系统的一个功能,用于管理和监控计算机系统的各种资源和组件。而Win32_DiskDrive是WMI的一个类,用于管理和获取计算机系统中的磁盘驱动器的信息。这个类提供了许多属性和方法,可以帮助我们获取和操作磁盘驱动器的各种信息。 在C/C编程语言中,我们可以使用WMIWin32_DiskDrive类来获取和操作磁盘驱动器的信息。首先,我们需要初始化WMI,然后使用WMI查询语言来查询Win32_DiskDrive类的实例。通过遍历这些实例,我们可以获取磁盘驱动器的各种属性,如驱动器的名称、序列号、容量、型号等等。我们可以通过调用相应的方法,如获取磁盘驱动器的序列号、格式化磁盘等,来操作磁盘驱动器。 具体来说,在C/C中可以使用WMI API编写相关的代码来获取和操作磁盘驱动器的信息。我们需要包含相关的头文件,并使用WMI API中的函数和结构体来实现相应的功能。首先,我们需要初始化WMI和连接到本地计算机的WMI服务。然后,使用WMI查询语句来查询Win32_DiskDrive类的实例。通过遍历这些实例,我们可以获取磁盘驱动器的各种属性,并将其打印或存储起来。此外,我们还可以调用相应的方法来进行磁盘驱动器的操作,如格式化磁盘、扩展磁盘分区等等。 总之,使用C/C编程语言结合WMIWin32_DiskDrive类,我们可以进行磁盘驱动器的信息获取和操作。这对于需要获取和管理计算机系统中磁盘驱动器的应用程序是非常有用的。同时,这也展示了C/C语言的灵活性和与Windows操作系统底层API的结合能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值