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

    SystemInfo.jpg

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

    }

  • 相关阅读:
    调试tomcat的过滤器配置
    嵌入式实操----基于RT1170 FreeRTOS时定器接口封装(二十二)
    嵌入式实操----基于RT1170 首板硬件之tempsensor温度传感器调试(二十一)
    嵌入式实操----基于RT1170 首板硬件之第一阶段总结(十九)
    嵌入式实操----基于RT1170 首板硬件之WDT调试(二十)
    嵌入式实操----基于RT1170 首板硬件之CAN BUS TJA1043显示调试(十八)
    嵌入式实操----基于RT1170 首板硬件之MIPI显示调试(十七)
    嵌入式实操----基于RT1170 首板硬件之ADC调试(十六)
    嵌入式实操----基于RT1170 首板硬件之EEPROM AT24C16调试(十五)
    嵌入式实操----基于RT1170 首板硬件之QSPI Flash调试(十三)
  • 原文地址:https://www.cnblogs.com/studio313/p/298960.html
Copyright © 2011-2022 走看看