运用API函数获取系统信息[1]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

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 调用后添加任何构造函数代码
   //
  }

本文关键:运用API函数获取系统信息
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top