zoukankan
html css js c++ java
运用API函数获取系统信息
<
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()
+
"
秒
"
;
}
}
查看全文
相关阅读:
调试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
最新文章
腾讯云服务器图形界面安装
hacker模拟环境
Win10系统下WampServer运行之后显示橙色如何变成绿色的方法
linux设置秘钥登录
WINDOWS还原系统后分区合并为一个分区的恢复方法
RAID5常见故障介绍及raid5故障后常规操作方法
北京公司服务器硬盘亮黄灯数据恢复过程
惠普塔式服务器崩溃数据恢复成功案例
nas存储服务器磁盘阵列失效、服务器无法访问数据恢复案例
我是怎么恢复4块盘掉线的服务器数据的
热门文章
两块硬盘的服务器数据恢复过程
python 保存excel 文件
第1年8月19日 git ls-remote
第1年8月16日 ffmpeg ios编译脚本
第1年8月12日 wkwebview 网络请求拦截
第1年8月9日 ffmpeg音频 fltp
第1年8月1日 ios yuv pixelbuffer
第1年7月22日 stun
第1年7月13日 nginx反向代理tomcat
chromedriver安装、升级
Copyright © 2011-2022 走看看