<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()+"秒";
}
分享到:
相关推荐
### C#运用API函数获取系统信息 在C#中运用API函数来获取系统信息是一种常见的技术,这使得开发者能够深入操作系统层面,获取如系统目录、CPU信息、内存状态以及系统时间等关键数据。通过直接调用Windows API函数,...
通过以上内容的学习,相信您已经对如何在Visual C#中运用API函数获取系统信息有了较为全面的理解。这不仅能够帮助您更加高效地完成开发任务,还能进一步提升您的编程技能。希望您能在实践中不断探索和学习,成为一名...
API(Application Programming Interface)函数是软件开发者用于与操作...对于初学者来说,理解并熟练运用API函数是提升编程技能的关键步骤;对于经验丰富的开发者来说,API函数大全则是解决问题和优化代码的宝贵资源。
### VB运用API函数入门教程详解 #### 一、API是什么? **Win32 API**,全称为 **Microsoft 32位平台的应用程序编程接口 (Application Programming Interface)**,是一组为在Windows 32位操作系统上运行的应用程序...
本资料包包含近百个使用Windows API函数在Visual Basic中实现各种功能的应用实例,旨在帮助开发者深入理解和熟练运用API函数。 在Visual Basic中调用API函数通常需要以下几个步骤: 1. **声明API函数**:首先,...
1. **搜索功能**:用户可以通过关键词、函数名或函数描述来搜索相关的API函数,快速找到所需的信息。 2. **分类浏览**:工具通常会按照不同的库、模块或框架对API进行分类,便于用户根据项目需求找到合适的API集。 ...
《VB API函数大全》包含的详细信息包括函数的功能、使用方法以及参数说明,帮助开发者更有效地理解和应用这些函数。CHM(Compiled Help Manual)格式的文件“VBAPI中文帮助.chm”是此资料的主要部分,提供了便于查询...
通过深入理解和熟练运用VB API函数,开发者能够编写出更高效、功能更强大的VB应用程序,满足复杂的系统级需求。这本参考手册将是你不可或缺的开发伙伴,它将助你在VB编程旅程中披荆斩棘,解决各种难题。
2. **函数分类**:手册可能按功能对API函数进行分类,如内存管理、文件操作、系统信息获取、图形绘制等。每个类别下会列出相关函数,并解释其用途和用法。 3. **函数参数**:详细说明每个API函数的参数,包括参数...
在学习和开发基于Windows的应用程序时,掌握API函数的使用至关重要,尤其是在使用像BCB(Borland C++ Builder)这样的开发环境时。本篇将详细解析Windows API中的网络函数、消息函数和文件处理函数,帮助开发者更好...
然而,由于API函数众多且复杂,开发者需要有耐心和细致的态度,逐步掌握每一个模块,才能熟练运用。同时,随着技术的发展,现代Windows编程更多地倾向于使用.NET框架和C#等高级语言,但掌握原生API仍然是提升开发...
11. **系统信息**:GetVersion、GetSystemTime、GetSystemMetrics等函数获取系统相关信息,帮助开发者适应不同版本的Windows。 在开发过程中,通常会结合C++、C#等高级语言来调用Win32API函数,因为这些语言提供了...
通过调用这些API函数,开发者可以创建与操作系统紧密集成的应用程序。 1. **系统函数**:Windows API中的系统函数涵盖了广泛的功能,例如`CreateProcess`用于启动新进程,`GetLastError`用于获取最近函数调用的错误...
这个"API函数资料"压缩包文件显然包含了关于Windows API的详细信息,适用于那些在Windows平台上编写程序的开发者。 Windows API提供了大量的函数,用于处理窗口、消息、内存管理、文件系统交互、网络通信、设备驱动...
根据提供的信息,我们可以总结出以下IT知识要点,主要聚焦于API函数的应用与功能解析: ### API函数概述 API(Application Programming Interface,应用程序编程接口)是一组定义了软件组件如何进行交互的标准,它...
API(Application Programming Interface)是操作系统提供给程序员用于访问系统功能的接口,VB API则特指在VB环境中使用的API函数。通过学习这些范例,初学者可以快速掌握如何在VB程序中调用系统级别的功能,增强...
Windows API(应用程序编程接口)是微软为开发者提供的一组接口函数,用于构建在Windows操作系统上的应用程序。这些函数提供了操作系统...同时,理解和运用API函数也有助于优化程序性能,提高代码的可读性和可维护性。
在文件操作中,还有很多其他的函数和概念,例如 GetFileInformationByHandle 函数可以获取指定文件的信息,SearchPath 函数可以根据给定搜索路径查找指定文件并返回指定文件的路径,SetFilePointer 函数可以设置文件...
在学习过程中,应注重实践,通过编写代码来运用API,不断调试和优化,以加深理解和记忆。同时,配合查阅官方文档和社区讨论,可以解决实际使用中的困惑,了解最新的API更新和最佳实践。记住,API的学习是一个持续的...
### Delphi API函数大全 ...以上这些API函数涵盖了Delphi开发中常见的文件管理和消息处理操作,对于学习Delphi的人来说非常有用,能够帮助开发者更好地理解和运用这些功能强大的API函数,从而提高开发效率和程序质量。