小山

付出最大努力,追求最高成就,享受最佳生活,收获无悔人生

博客园 首页 新随笔 联系 订阅 管理

<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

        
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()+"";
        }

    }
posted on 2005-11-24 15:46  小山  阅读(3943)  评论(4编辑  收藏  举报