发新话题
打印

利用c# 获取系统的基本信息

利用c# 获取系统的基本信息

c# 获取系统基本信息
//cpu的编号
using System.Management;
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
String strCpuID = null;
foreach (ManagementObject mo in moc)
{
strCpuID = mo.Properties["ProcessorId"].Value.ToString();
this.label1.Text = strCpuID;
break;
}

//获取CPU基本信息
using System.Runtime.InteropServices;
        [DllImport("kernel32 ")]
        public static extern void GetSystemInfo(ref   CPU_INFO cpuinfo);
      
        //定义CPU的信息结构
        [StructLayout(LayoutKind.Sequential)]
        public struct CPU_INFO
        {
            public uint dwOemId;
            public uint dwPageSize;
            public uint lpMinimumApplicationAddress;
            public uint lpMaximumApplicationAddress;
            public uint dwActiveProcessorMask;
            public uint dwNumberOfProcessors;
            public uint dwProcessorType;
            public uint dwAllocationGranularity;
            public uint dwProcessorLevel;
            public uint dwProcessorRevision;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //调用GetSystemInfo函数获取CPU的相关信息
            CPU_INFO CpuInfo;
            CpuInfo = new CPU_INFO();
            GetSystemInfo(ref   CpuInfo);
            string a = "本计算机中有 " + CpuInfo.dwNumberOfProcessors.ToString()+ "个CPU ";
            string b  = "CPU的类型为 " + CpuInfo.dwProcessorType.ToString();
            string c  = "CPU等级为 " + CpuInfo.dwProcessorLevel.ToString();
            string d  = "CPU的OEM   ID为 " + CpuInfo.dwOemId.ToString();
            string e = "CPU中的页面大小为 " + CpuInfo.dwPageSize.ToString();
        }

//获取物理内存
using System.Management;//注意需要引用
string st = "";
ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
st = mo["TotalPhysicalMemory"].ToString();
}

//显示卡信息
ManagementObjectSearcher searcher = new ManagementObjectSearcher(@"root\CIMV2", "SELECT * FROM Win32_VideoController");
                foreach (ManagementObject info in searcher.Get())
                {
                    string a  = "适配器兼容性   "+ info["AdapterCompatibility"].ToString();
                    string b  = "适配器类型 "+ info["AdapterDACType"].ToString();
                    string c  = "视频模式描述"+info["VideoModeDescription"].ToString();
                    string d  = "字幕"+info["Caption"].ToString();
                    string e  = "目前比特每像素"+info["CurrentBitsPerPixel"].ToString();
                    string f  = "目前的水平分辨率"+info["CurrentHorizontalResolution"].ToString();
                    string g  = "视频处理器"+info["VideoProcessor"].ToString();
                    string h  = "最大刷新率" + info["MaxRefreshRate"].ToString();
                    string i  = "设备ID" + info["DeviceID"].ToString();
                    string j  = "描述" + info["Description"].ToString();
                }

//获取分区信息
using System.Management;  
private void button1_Click(object sender, EventArgs e)
        {
WqlObjectQuery wmiquery = new WqlObjectQuery("SELECT * FROM Win32_LogicalDisk WHERE DeviceID = 'e:'");
            ManagementObjectSearcher wmifind = new ManagementObjectSearcher(wmiquery);
            foreach (ManagementObject mobj in wmifind.Get())
            {
               string a  = ("磁盘类型: " + mobj["Description"].ToString());
                string b  = ("分区类型: " + mobj["FileSystem"].ToString());
                 string c  = ("可用空间: " + mobj["FreeSpace"].ToString());
                string d  = ("实际大小: " + mobj["Size"].ToString());
}
        }

//获取主板信息
using System.Management;
ManagementObjectSearcher my = new ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard");
            foreach (ManagementObject share in my.Get())
            {
                string a = "主板制造商:" + share["Manufacturer"].ToString();
                string b  = "产品:" + share["Product"].ToString();
                string c  = "主板序列号:" + share["SerialNumber"].ToString();
            }

//获取IP地址
using System.Management;
string st = "";
                ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
                ManagementObjectCollection moc = mc.GetInstances();
                foreach (ManagementObject mo in moc)
                {
                    if ((bool)mo["IPEnabled"] == true)
                    {
                        //st=mo["IpAddress"].ToString();
                        System.Array ar;
                        ar = (System.Array)(mo.Properties["IpAddress"].Value);
                        st = ar.GetValue(0).ToString();
                        String  ipadd  = st;
                        break;
                     }
                }

//获取进程详细信息
using System.Diagnostics;
        string s = "";
        System.Int32 processid;
        Process process;
        //Retrieve the additional information about a specific process
        processid = Int32.Parse(this.textBox1.Text);
        process = System.Diagnostics.Process.GetProcessById(processid);
        s = s + "该进程的总体优先级类别:" + Convert.ToString(process.PriorityClass) + " \r\n";
        s = s + "由该进程打开的句柄数:" + process.HandleCount + "\r\n";
        s = s + "该进程的主窗口标题:" + process.MainWindowTitle + "\r\n";
        s = s + " 该进程允许的最小工作集大小:" + process.MinWorkingSet.ToString() + " \r\n";
        s = s + "该进程允许的最大工作集大小:" + process.MaxWorkingSet.ToString() + " \r\n";
        s = s + "该进程的分页内存大小:" + process.PagedMemorySize + "\r\n";
        s = s + "该进程的峰值分页内存大小:" + process.PeakPagedMemorySize + "\r\n";
        System.Windows.Forms.MessageBox.Show(s);
为了避免异常崩溃 建议放在 TRY 里运行

//获取系统的启动日期和安装日期.
System.Management.ObjectQuery MyQuery=new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
   System.Management.ManagementScope MyScope=new ManagementScope();
   ManagementObjectSearcher MySearch=new ManagementObjectSearcher(MyScope,MyQuery);
   ManagementObjectCollection MyCollection=MySearch.Get();
   string StrInfo="";
   foreach(ManagementObject MyObject in MyCollection)
   {
    StrInfo=MyObject.GetText(TextFormat.Mof);
   }
   string InstallDate=StrInfo.Substring(StrInfo.LastIndexOf("InstallDate")+15,14);
   string LastBootUpTime=StrInfo.Substring(StrInfo.LastIndexOf("LastBootUpTime")+18,14);
   string a =InstallDate;
   string b =LastBootUpTime;

TOP

支持一下
卖刷QB软件.500块一个月,联系QQ:188685575 (注名,买软件)
收徒弟,教远程控制+抓鸡 学费300  入侵网站 学费300 破解软件 学费300 盗QQ 学费100
免费拿电脑打电话(给家庭做机,手机,各省份,国外,全部免费,无时间限制)学费300 .....
联系QQ:188685575

TOP

这些还不错

TOP

发新话题