C#中调用API(下)

飞刀
 

调用API全部代码

//Created By Ajit Mungale

//程序补充 飞刀

namespace UsingAPI

{

 

using System;

    using System.Drawing;

    using System.Collections;

    using System.ComponentModel;

    using System.WinForms;

    using System.Data;

     using System.Runtime.InteropServices; 

 

     //Struct 收集系统信息

     [StructLayout(LayoutKind.Sequential)]   

     public struct SYSTEM_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;        

         }

     //struct 收集内存情况

     [StructLayout(LayoutKind.Sequential)]   

     public struct MEMORYSTATUS

     {

             public  uint dwLength;

              public  uint dwMemoryLoad;

              public  uint dwTotalPhys;

              public  uint dwAvailPhys;

              public  uint dwTotalPageFile;

              public  uint dwAvailPageFile;

              public  uint dwTotalVirtual;

              public  uint dwAvailVirtual;

      }

 

 

    public class Form1 : System.WinForms.Form

    {

     

        private System.ComponentModel.Container components;

         private System.WinForms.MenuItem menuAbout;

         private System.WinForms.MainMenu mainMenu1;

         private System.WinForms.ListBox listBox1;

         private System.WinForms.Button button1;

         

         

         //获取系统信息

         [DllImport("kernel32")]

         static extern void GetSystemInfo(ref SYSTEM_INFO pSI);

         

         //获取内存信息

         [DllImport("kernel32")]

         static extern void GlobalMemoryStatus(ref MEMORYSTATUS buf);

         

      

         //处理器类型

         public const int PROCESSOR_INTEL_386 = 386;

         public const int PROCESSOR_INTEL_486 = 486;

         public const int PROCESSOR_INTEL_PENTIUM = 586;

         public const int PROCESSOR_MIPS_R4000 = 4000;

         public const int PROCESSOR_ALPHA_21064 = 21064;

        

         public Form1()

        {

            InitializeComponent();

        }

 

        public override void Dispose()

        {

            base.Dispose();

            components.Dispose();

        }

 

        private void InitializeComponent()

         {

              this.components = new System.ComponentModel.Container ();

              this.mainMenu1 = new System.WinForms.MainMenu ();

              this.button1 = new System.WinForms.Button ();

              this.listBox1 = new System.WinForms.ListBox ();

              this.menuAbout = new System.WinForms.MenuItem ();

 

              mainMenu1.MenuItems.All = new System.WinForms.MenuItem[1] {this.menuAbout};

              button1.Location = new System.Drawing.Point (148, 168);

              button1.Size = new System.Drawing.Size (112, 32);

              button1.TabIndex = 0;

              button1.Text = "&Get Info";

              button1.Click += new System.EventHandler (this.button1_Click);

              listBox1.Location = new System.Drawing.Point (20, 8);

              listBox1.Size = new System.Drawing.Size (368, 147);

              listBox1.TabIndex = 1;

              menuAbout.Text = "&About";

              menuAbout.Index = 0;

              menuAbout.Click += new System.EventHandler (this.menuAbout_Click);

              this.Text = "System Information - Using API";

              this.MaximizeBox = false;

              this.AutoScaleBaseSize = new System.Drawing.Size (5, 13);

              this.MinimizeBox = false;

              this.Menu = this.mainMenu1;

              this.ClientSize = new System.Drawing.Size (408, 213);

              this.Controls.Add (this.listBox1);

              this.Controls.Add (this.button1);

         }

 

         protected void menuAbout_Click (object sender, System.EventArgs e)

         {

              Form abt=new about() ;

              abt.ShowDialog(); 

         }

         

         protected void button1_Click (object sender, System.EventArgs e)

         {

              

              try

              {

                   SYSTEM_INFO pSI = new SYSTEM_INFO();

                   GetSystemInfo(ref pSI);

                   string CPUType;

                   switch (pSI.dwProcessorType)

                   {

                                          

                       case PROCESSOR_INTEL_386    :

                             CPUType= "Intel 386";

                             break;

                       case PROCESSOR_INTEL_486    :

                            CPUType = "Intel 486" ;

                            break;

                       case PROCESSOR_INTEL_PENTIUM     :

                            CPUType =  "Intel Pentium";

                            break;

                       case PROCESSOR_MIPS_R4000   :

                             CPUType =  "MIPS R4000";

                             break;

                       case PROCESSOR_ALPHA_21064  :

                            CPUType =  "DEC Alpha 21064";

                            break;

                       default :

                             CPUType = "(unknown)";

                   }

                   

                   listBox1.InsertItem (0,"Active Processor Mask :         " + pSI.dwActiveProcessorMask.ToString());

                   listBox1.InsertItem (1,"Allocation Granularity :        " + pSI.dwAllocationGranularity.ToString());                 

                   listBox1.InsertItem (2,"Number Of Processors :     " + pSI.dwNumberOfProcessors.ToString());

                   listBox1.InsertItem (3,"OEM ID :               " + pSI.dwOemId.ToString());

                   listBox1.InsertItem (4,"Page Size :            " + pSI.dwPageSize.ToString());

 

                   listBox1.InsertItem (5,"Processor Level Value :         " + pSI.dwProcessorLevel.ToString());

                   listBox1.InsertItem (6,"Processor Revision :       " + pSI.dwProcessorRevision.ToString());

                   listBox1.InsertItem (7,"CPU type :             " + CPUType); 

                   listBox1.InsertItem (8,"Maximum Application Address :   " + pSI.lpMaximumApplicationAddress.ToString());

                   listBox1.InsertItem (9,"Minimum Application Address :   " + pSI.lpMinimumApplicationAddress.ToString());

                   

                   /**************    从  GlobalMemoryStatus 获取返回值****************/

                   

                   MEMORYSTATUS memSt = new MEMORYSTATUS ();               

                   GlobalMemoryStatus (ref memSt);

                    

                   listBox1.InsertItem(10,"Available Page File :      " + (memSt.dwAvailPageFile/1024).ToString ());

                   listBox1.InsertItem(11,"Available Physical Memory :     " + (memSt.dwAvailPhys/1024).ToString());                    

                   listBox1.InsertItem(12,"Available Virtual Memory :      " + (memSt.dwAvailVirtual/1024).ToString ());

                   listBox1.InsertItem(13,"Size of structur :              " + memSt.dwLength.ToString()); 

                   listBox1.InsertItem(14,"Memory In Use :            " + memSt.dwMemoryLoad.ToString()); 

                   listBox1.InsertItem(15,"Total Page Size :          " + (memSt.dwTotalPageFile/1024).ToString ());

                   listBox1.InsertItem(16,"Total Physical Memory :         " + (memSt.dwTotalPhys/1024).ToString()); 

                   listBox1.InsertItem(17,"Total Virtual Memory :     " + (memSt.dwTotalVirtual/1024).ToString ());

                   

              }

              catch(Exception er)

              {

                   MessageBox.Show (er.Message); 

              }

         }

        public static void Main(string[] args) 

        {

            try

              {

                   Application.Run(new Form1());

              }

              catch(Exception er)

              {

                   MessageBox.Show (er.Message ); 

              }

        }

    }

}

 

文章评级:★★★★★☆☆☆☆ 发表者:{佚名(127.0.0.*)} 3-29 [ 0]

 分享到:
 
相关文章:
我是:
本站注册用户
用户名: 密码:
非本站注册用户
我来评论:

评论字数在2000字以内。评论即可得2分,评论被采用后,根据评级可得到相应的积分和智慧果。
比如:评论评级为5,可得50分和5个智慧果。

 

 
 
 
 
 
 
































 

© 版权所有  2001-2024 知识网站
Copyright (C) 2001-2024 allzhishi.com All rights reserved
联系我们 — 电话:15973023232  微信:zhishizaixian  ICP备案号:湘ICP备08003211号-4