< HTML > < HEAD > < title > SystemInfo </ title > < meta name ="GENERATOR" Content ="Microsoft Visual Studio .NET 7.1" > < meta name ="CODE_LANGUAGE" Content ="C#" > < meta name ="vs_defaultClientScript" content ="JavaScript" > < meta name ="vs_targetSchema" content ="http://schemas.microsoft.com/intellisense/ie5" > </ HEAD > < body MS_POSITIONING ="GridLayout" > < form id ="Form1" method ="post" runat ="server" > < colgroup > < col width ="50%" > < col width ="50%" > </ colgroup > < table width ="100%" > < tr > < td bgcolor ="#99ccff" > Window及系统路径: </ td > < td bgcolor ="#99ccff" > 系统日期信息: </ td > </ tr > < tr > < td > < asp:Label id ="WindowsDirectory" runat ="server" > WindowsDirectory </ asp:Label ></ td > < td > < asp:Label id ="Date" runat ="server" > Date </ asp:Label ></ td > </ tr > < tr > < td > < asp:Label id ="SystemDirectory" runat ="server" > SystemDirectoryLabel </ asp:Label ></ td > < td > < asp:Label id ="Time" runat ="server" > Time </ asp:Label ></ td > </ tr > < tr > < td bgcolor ="#99ccff" > 内存信息: </ td > < td bgcolor ="#99ccff" > CUP信息: </ td > </ tr > < tr > < td > < asp:Label id ="MemoryLoad" runat ="server" > MemoryLoad </ asp:Label ></ td > < td > < asp:Label id ="NumberOfProcessors" runat ="server" > NumberOfProcessorsLabel </ asp:Label ></ td > </ tr > < tr > < td > < asp:Label id ="TotalPhys" runat ="server" > TotalPhys </ asp:Label ></ td > < td > < asp:Label id ="ProcessorType" runat ="server" > ProcessorTypeLabel </ asp:Label ></ td > </ tr > < tr > < td > < asp:Label id ="AvailPhys" runat ="server" > AvailPhys </ asp:Label ></ td > < td > < asp:Label id ="ProcessorLevel" runat ="server" > ProcessorLevelLabel </ asp:Label ></ td > </ tr > < tr > < td > < asp:Label id ="TotalPageFile" runat ="server" > TotalPageFile </ asp:Label ></ td > < td > < asp:Label id ="OemId" runat ="server" > OemIdLabel </ asp:Label ></ td > </ tr > < tr > < td > < asp:Label id ="AvailPageFile" runat ="server" > AvailPageFile </ asp:Label ></ td > < td > < asp:Label id ="PageSize" runat ="server" > PageSize </ asp:Label ></ td > </ tr > < tr > < td > < asp:Label id ="TotalVirtual" runat ="server" > TotalVirtualLabel </ asp:Label ></ td > < td ></ td > </ tr > < tr > < td > < asp:Label id ="AvailVirtual" runat ="server" > AvailVirtualLabel </ asp:Label ></ td > < td ></ td > </ tr > </ table > < asp:Button id ="Button1" style ="Z-INDEX: 101; LEFT: 752px; POSITION: absolute; TOP: 304px" runat ="server" Text ="获取" ></ asp:Button > </ form > </ body > </ HTML > public class SystemInfo : System.Web.UI.Page { //要添加如下引用 //using System.Runtime.InteropServices; //using System.Text; protected System.Web.UI.WebControls.Label WindowsDirectory; protected System.Web.UI.WebControls.Label SystemDirectory; protected System.Web.UI.WebControls.Label NumberOfProcessors; protected System.Web.UI.WebControls.Label ProcessorType; protected System.Web.UI.WebControls.Label ProcessorLevel; protected System.Web.UI.WebControls.Label OemId; protected System.Web.UI.WebControls.Label PageSize; protected System.Web.UI.WebControls.Label MemoryLoad; protected System.Web.UI.WebControls.Label TotalPhys; protected System.Web.UI.WebControls.Label AvailPhys; protected System.Web.UI.WebControls.Label TotalPageFile; protected System.Web.UI.WebControls.Label AvailPageFile; protected System.Web.UI.WebControls.Label TotalVirtual; protected System.Web.UI.WebControls.Label AvailVirtual; protected System.Web.UI.WebControls.Label Date; protected System.Web.UI.WebControls.Label Time; protected System.Web.UI.WebControls.Button Button1; //在调用API之前,你必须先导入System.Runtime.InteropServices这个名称空间。 //其中,"DllImport"属性用来从不可控代码中调用一个方法,它指定了DLL的位置,该DLL中包含调用的外部方法; //"kernel32"设定了类库名;"public"指明函数的访问类型为公有的; //"static"修饰符声明一个静态元素,而该元素属于类型本身而不是指定的对象; //"extern"表示该方法将在工程外部执行,同时使用DllImport导入的方法必须使用"extern"修饰符 [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); //定义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; } //定义内存的信息结构 [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; } private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here } Web Form Designer generated code#region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN: This call is required by the ASP.NET Web Form Designer. // InitializeComponent(); base.OnInit(e); } /**//// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.Button1.Click += new System.EventHandler(this.Button1_Click); this.Load += new System.EventHandler(this.Page_Load); } #endregion 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()+"秒"; } }