zoukankan      html  css  js  c++  java
  • 运用API函数获取系统信息(转)

     

    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    using System.Runtime.InteropServices;
    using System.Text;


    namespace WindowsApplication10
    {
     /// <summary>
     /// Form1 的摘要说明。
     /// </summary>
     public class Form1 : System.Windows.Forms.Form
     {
      private System.Windows.Forms.GroupBox groupBox1;
      private System.Windows.Forms.GroupBox groupBox2;
      private System.Windows.Forms.GroupBox groupBox3;
      private System.Windows.Forms.GroupBox groupBox4;
      private System.Windows.Forms.Button button1;
      private System.Windows.Forms.Label AvailVirtual;
      private System.Windows.Forms.Label TotalVirtual;
      private System.Windows.Forms.Label AvailPageFile;
      private System.Windows.Forms.Label TotalPageFile;
      private System.Windows.Forms.Label AvailPhys;
      private System.Windows.Forms.Label TotalPhys;
      private System.Windows.Forms.Label MemoryLoad;
      private System.Windows.Forms.Label PageSize;
      private System.Windows.Forms.Label OemId;
      private System.Windows.Forms.Label ProcessorLevel;
      private System.Windows.Forms.Label ProcessorType;
      private System.Windows.Forms.Label NumberOfProcessors;
      private System.Windows.Forms.Label SystemDirectory;
      private System.Windows.Forms.Label WindowsDirectory;
      private System.Windows.Forms.Label Time;
      private System.Windows.Forms.Label Date;
      /// <summary>
      /// 必需的设计器变量。
      /// </summary>
      private System.ComponentModel.Container components = null;
      [DllImport("kernel32")]
      public static extern void GetWindowsDirectory(StringBuilder WinDir,int count);
           
      [DllImport("kernel32")]
      public static extern void GetSystemDirectory(StringBuilder SysDir,int count);

      [DllImport("kernel32")]
      public static extern void GetSystemInfo(ref CPU_INFO cpuinfo);

      [DllImport("kernel32")]
      public static extern void GlobalMemoryStatus(ref MEMORY_INFO meminfo);

      [DllImport("kernel32")]
      public static extern void GetSystemTime(ref SYSTEMTIME_INFO stinfo);

      [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;
      }

      //定义内存的信息结构
      [StructLayout(LayoutKind.Sequential)]
       public struct MEMORY_INFO
      {
       public uint dwLength;
       public uint dwMemoryLoad;
       public uint dwTotalPhys;
       public uint dwAvailPhys;
       public uint dwTotalPageFile;
       public uint dwAvailPageFile;
       public uint dwTotalVirtual;
       public uint dwAvailVirtual;
      }

      //定义系统时间的信息结构
      [StructLayout(LayoutKind.Sequential)]
       public struct SYSTEMTIME_INFO
      {
       public ushort wYear;
       public ushort wMonth;
       public ushort wDayOfWeek;
       public ushort wDay;
       public ushort wHour;
       public ushort wMinute;
       public ushort wSecond;
       public ushort wMilliseconds;
      }

      public Form1()
      {
       //
       // Windows 窗体设计器支持所必需的
       //
       InitializeComponent();

       //
       // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
       //
      }

      /// <summary>
      /// 清理所有正在使用的资源。
      /// </summary>
      protected override void Dispose( bool disposing )
      {
       if( disposing )
       {
        if (components != null)
        {
         components.Dispose();
        }
       }
       base.Dispose( disposing );
      }

      #region Windows 窗体设计器生成的代码
      /// <summary>
      /// 设计器支持所需的方法 - 不要使用代码编辑器修改
      /// 此方法的内容。
      /// </summary>
      private void InitializeComponent()
      {
       this.groupBox1 = new System.Windows.Forms.GroupBox();
       this.groupBox2 = new System.Windows.Forms.GroupBox();
       this.groupBox3 = new System.Windows.Forms.GroupBox();
       this.groupBox4 = new System.Windows.Forms.GroupBox();
       this.button1 = new System.Windows.Forms.Button();
       this.Time = new System.Windows.Forms.Label();
       this.Date = new System.Windows.Forms.Label();
       this.TotalPhys = new System.Windows.Forms.Label();
       this.MemoryLoad = new System.Windows.Forms.Label();
       this.AvailPageFile = new System.Windows.Forms.Label();
       this.TotalVirtual = new System.Windows.Forms.Label();
       this.AvailPhys = new System.Windows.Forms.Label();
       this.TotalPageFile = new System.Windows.Forms.Label();
       this.PageSize = new System.Windows.Forms.Label();
       this.OemId = new System.Windows.Forms.Label();
       this.AvailVirtual = new System.Windows.Forms.Label();
       this.ProcessorLevel = new System.Windows.Forms.Label();
       this.NumberOfProcessors = new System.Windows.Forms.Label();
       this.ProcessorType = new System.Windows.Forms.Label();
       this.WindowsDirectory = new System.Windows.Forms.Label();
       this.SystemDirectory = new System.Windows.Forms.Label();
       this.groupBox1.SuspendLayout();
       this.groupBox2.SuspendLayout();
       this.groupBox3.SuspendLayout();
       this.groupBox4.SuspendLayout();
       this.SuspendLayout();
       //
       // groupBox1
       //
       this.groupBox1.Controls.Add(this.Date);
       this.groupBox1.Controls.Add(this.Time);
       this.groupBox1.Location = new System.Drawing.Point(8, 16);
       this.groupBox1.Name = "groupBox1";
       this.groupBox1.Size = new System.Drawing.Size(240, 128);
       this.groupBox1.TabIndex = 0;
       this.groupBox1.TabStop = false;
       this.groupBox1.Text = "groupBox1";
       //
       // groupBox2
       //
       this.groupBox2.Controls.Add(this.TotalVirtual);
       this.groupBox2.Controls.Add(this.AvailVirtual);
       this.groupBox2.Location = new System.Drawing.Point(296, 24);
       this.groupBox2.Name = "groupBox2";
       this.groupBox2.Size = new System.Drawing.Size(240, 120);
       this.groupBox2.TabIndex = 1;
       this.groupBox2.TabStop = false;
       this.groupBox2.Text = "groupBox2";
       //
       // groupBox3
       //
       this.groupBox3.Controls.Add(this.ProcessorType);
       this.groupBox3.Controls.Add(this.NumberOfProcessors);
       this.groupBox3.Controls.Add(this.MemoryLoad);
       this.groupBox3.Controls.Add(this.PageSize);
       this.groupBox3.Controls.Add(this.OemId);
       this.groupBox3.Controls.Add(this.ProcessorLevel);
       this.groupBox3.Location = new System.Drawing.Point(296, 160);
       this.groupBox3.Name = "groupBox3";
       this.groupBox3.Size = new System.Drawing.Size(240, 256);
       this.groupBox3.TabIndex = 1;
       this.groupBox3.TabStop = false;
       this.groupBox3.Text = "groupBox2";
       //
       // groupBox4
       //
       this.groupBox4.Controls.Add(this.AvailPageFile);
       this.groupBox4.Controls.Add(this.TotalPageFile);
       this.groupBox4.Controls.Add(this.AvailPhys);
       this.groupBox4.Controls.Add(this.TotalPhys);
       this.groupBox4.Controls.Add(this.WindowsDirectory);
       this.groupBox4.Location = new System.Drawing.Point(16, 160);
       this.groupBox4.Name = "groupBox4";
       this.groupBox4.Size = new System.Drawing.Size(240, 296);
       this.groupBox4.TabIndex = 2;
       this.groupBox4.TabStop = false;
       this.groupBox4.Text = "groupBox2";
       //
       // button1
       //
       this.button1.Location = new System.Drawing.Point(248, 456);
       this.button1.Name = "button1";
       this.button1.TabIndex = 3;
       this.button1.Text = "button1";
       this.button1.Click += new System.EventHandler(this.button1_Click);
       //
       // Time
       //
       this.Time.Location = new System.Drawing.Point(32, 48);
       this.Time.Name = "Time";
       this.Time.Size = new System.Drawing.Size(160, 23);
       this.Time.TabIndex = 0;
       this.Time.Text = "label1";
       //
       // Date
       //
       this.Date.Location = new System.Drawing.Point(32, 96);
       this.Date.Name = "Date";
       this.Date.Size = new System.Drawing.Size(160, 23);
       this.Date.TabIndex = 1;
       this.Date.Text = "label2";
       //
       // TotalPhys
       //
       this.TotalPhys.Location = new System.Drawing.Point(32, 208);
       this.TotalPhys.Name = "TotalPhys";
       this.TotalPhys.Size = new System.Drawing.Size(160, 23);
       this.TotalPhys.TabIndex = 2;
       this.TotalPhys.Text = "label3";
       //
       // MemoryLoad
       //
       this.MemoryLoad.Location = new System.Drawing.Point(40, 56);
       this.MemoryLoad.Name = "MemoryLoad";
       this.MemoryLoad.Size = new System.Drawing.Size(168, 23);
       this.MemoryLoad.TabIndex = 3;
       this.MemoryLoad.Text = "label4";
       //
       // AvailPageFile
       //
       this.AvailPageFile.Location = new System.Drawing.Point(32, 64);
       this.AvailPageFile.Name = "AvailPageFile";
       this.AvailPageFile.Size = new System.Drawing.Size(160, 23);
       this.AvailPageFile.TabIndex = 4;
       this.AvailPageFile.Text = "label5";
       //
       // TotalVirtual
       //
       this.TotalVirtual.Location = new System.Drawing.Point(40, 40);
       this.TotalVirtual.Name = "TotalVirtual";
       this.TotalVirtual.Size = new System.Drawing.Size(168, 23);
       this.TotalVirtual.TabIndex = 5;
       this.TotalVirtual.Text = "label6";
       //
       // AvailPhys
       //
       this.AvailPhys.Location = new System.Drawing.Point(32, 160);
       this.AvailPhys.Name = "AvailPhys";
       this.AvailPhys.Size = new System.Drawing.Size(160, 23);
       this.AvailPhys.TabIndex = 6;
       this.AvailPhys.Text = "label7";
       //
       // TotalPageFile
       //
       this.TotalPageFile.Location = new System.Drawing.Point(32, 112);
       this.TotalPageFile.Name = "TotalPageFile";
       this.TotalPageFile.Size = new System.Drawing.Size(160, 23);
       this.TotalPageFile.TabIndex = 7;
       this.TotalPageFile.Text = "label8";
       //
       // PageSize
       //
       this.PageSize.Location = new System.Drawing.Point(40, 96);
       this.PageSize.Name = "PageSize";
       this.PageSize.Size = new System.Drawing.Size(168, 23);
       this.PageSize.TabIndex = 8;
       this.PageSize.Text = "label9";
       //
       // OemId
       //
       this.OemId.Location = new System.Drawing.Point(40, 144);
       this.OemId.Name = "OemId";
       this.OemId.Size = new System.Drawing.Size(168, 23);
       this.OemId.TabIndex = 9;
       this.OemId.Text = "label10";
       //
       // AvailVirtual
       //
       this.AvailVirtual.Location = new System.Drawing.Point(40, 80);
       this.AvailVirtual.Name = "AvailVirtual";
       this.AvailVirtual.Size = new System.Drawing.Size(168, 23);
       this.AvailVirtual.TabIndex = 10;
       this.AvailVirtual.Text = "label11";
       //
       // ProcessorLevel
       //
       this.ProcessorLevel.Location = new System.Drawing.Point(40, 184);
       this.ProcessorLevel.Name = "ProcessorLevel";
       this.ProcessorLevel.Size = new System.Drawing.Size(168, 23);
       this.ProcessorLevel.TabIndex = 11;
       this.ProcessorLevel.Text = "label12";
       //
       // NumberOfProcessors
       //
       this.NumberOfProcessors.Location = new System.Drawing.Point(40, 24);
       this.NumberOfProcessors.Name = "NumberOfProcessors";
       this.NumberOfProcessors.Size = new System.Drawing.Size(168, 23);
       this.NumberOfProcessors.TabIndex = 12;
       this.NumberOfProcessors.Text = "label1";
       //
       // ProcessorType
       //
       this.ProcessorType.Location = new System.Drawing.Point(40, 216);
       this.ProcessorType.Name = "ProcessorType";
       this.ProcessorType.Size = new System.Drawing.Size(168, 23);
       this.ProcessorType.TabIndex = 13;
       this.ProcessorType.Text = "label2";
       //
       // WindowsDirectory
       //
       this.WindowsDirectory.Location = new System.Drawing.Point(32, 24);
       this.WindowsDirectory.Name = "WindowsDirectory";
       this.WindowsDirectory.Size = new System.Drawing.Size(160, 23);
       this.WindowsDirectory.TabIndex = 11;
       this.WindowsDirectory.Text = "label1";
       //
       // SystemDirectory
       //
       this.SystemDirectory.Location = new System.Drawing.Point(32, 400);
       this.SystemDirectory.Name = "SystemDirectory";
       this.SystemDirectory.TabIndex = 2;
       this.SystemDirectory.Text = "label2";
       //
       // Form1
       //
       this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
       this.ClientSize = new System.Drawing.Size(568, 507);
       this.Controls.Add(this.button1);
       this.Controls.Add(this.groupBox1);
       this.Controls.Add(this.groupBox2);
       this.Controls.Add(this.groupBox3);
       this.Controls.Add(this.groupBox4);
       this.Controls.Add(this.SystemDirectory);
       this.Name = "Form1";
       this.Text = "Form1";
       this.groupBox1.ResumeLayout(false);
       this.groupBox2.ResumeLayout(false);
       this.groupBox3.ResumeLayout(false);
       this.groupBox4.ResumeLayout(false);
       this.ResumeLayout(false);

      }
      #endregion

      /// <summary>
      /// 应用程序的主入口点。
      /// </summary>
      [STAThread]
      static void Main()
      {
       Application.Run(new Form1());
      }

      private void button1_Click(object sender, System.EventArgs e)
      {
       //调用GetWindowsDirectory和GetSystemDirectory函数分别取得Windows路径和系统路径
       const int nChars = 128;
       StringBuilder Buff = new StringBuilder(nChars);
       GetWindowsDirectory(Buff,nChars);
       WindowsDirectory.Text = "Windows路径:"+Buff.ToString();
       GetSystemDirectory(Buff,nChars);
       SystemDirectory.Text = "系统路径:"+Buff.ToString();

       //调用GetSystemInfo函数获取CPU的相关信息
       CPU_INFO CpuInfo;
       CpuInfo = new CPU_INFO();
       GetSystemInfo(ref CpuInfo);
       NumberOfProcessors.Text = "本计算机中有"+CpuInfo.dwNumberOfProcessors.ToString()+"个CPU";
       ProcessorType.Text = "CPU的类型为"+CpuInfo.dwProcessorType.ToString();
       ProcessorLevel.Text = "CPU等级为"+CpuInfo.dwProcessorLevel.ToString();
       OemId.Text = "CPU的OEM ID为"+CpuInfo.dwOemId.ToString();
       PageSize.Text = "CPU中的页面大小为"+CpuInfo.dwPageSize.ToString();

       //调用GlobalMemoryStatus函数获取内存的相关信息
       MEMORY_INFO MemInfo;
       MemInfo = new MEMORY_INFO();
       GlobalMemoryStatus(ref MemInfo);
       MemoryLoad.Text = MemInfo.dwMemoryLoad.ToString()+"%的内存正在使用";
       TotalPhys.Text = "物理内存共有"+MemInfo.dwTotalPhys.ToString()+"字节";
       AvailPhys.Text = "可使用的物理内存有"+MemInfo.dwAvailPhys.ToString()+"字节";
       TotalPageFile.Text = "交换文件总大小为"+MemInfo.dwTotalPageFile.ToString()+"字节";
       AvailPageFile.Text = "尚可交换文件大小为"+MemInfo.dwAvailPageFile.ToString()+"字节";
       TotalVirtual.Text = "总虚拟内存有"+MemInfo.dwTotalVirtual.ToString()+"字节";
       AvailVirtual.Text = "未用虚拟内存有"+MemInfo.dwAvailVirtual.ToString()+"字节";

       //调用GetSystemTime函数获取系统时间信息
       SYSTEMTIME_INFO StInfo;
       StInfo = new SYSTEMTIME_INFO();
       GetSystemTime(ref StInfo);
       Date.Text = StInfo.wYear.ToString()+"年"+StInfo.wMonth.ToString()+"月"+StInfo.wDay.ToString()+"日";
       Time.Text = (StInfo.wHour+8).ToString()+"点"+StInfo.wMinute.ToString()+"分"+StInfo.wSecond.ToString()+"秒";
      }

      }
     }

  • 相关阅读:
    多表联合查询,利用 concat 模糊搜索
    order by 中利用 case when 排序
    Quartz.NET 3.0.7 + MySql 动态调度作业+动态切换版本+多作业引用同一程序集不同版本+持久化+集群(一)
    ASP.NET Core 2.2 基础知识(十八) 托管和部署 概述
    ASP.NET Core 2.2 基础知识(十七) SignalR 一个极其简陋的聊天室
    ASP.NET Core 2.2 基础知识(十六) SignalR 概述
    ASP.NET Core 2.2 基础知识(十五) Swagger
    ASP.NET Core 2.2 基础知识(十四) WebAPI Action返回类型(未完待续)
    linux磁盘管理 磁盘查看操作
    linux磁盘管理 文件挂载
  • 原文地址:https://www.cnblogs.com/xh831213/p/326938.html
Copyright © 2011-2022 走看看