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()
+
"
秒
"
;
}
}
查看全文
相关阅读:
在linux上开发210的hdmi-servers输出
haproxy.cfg
【Quartz】Quartz的搭建、应用(单独使用Quartz)
application.xml定时
URLEncode转json
Callable与Future的简单介绍
Java并发:Callable、Future和FutureTask
Java并发编程:Callable、Future和FutureTask
EXECUTORSERVICE线程池讲解
ExecutorService中submit和execute的区别
原文地址:https://www.cnblogs.com/studio313/p/298960.html
最新文章
java设计模式之 装饰器模式
ROS学习笔记五:创建和使用ROS msg和srv
ROS学习笔记四:用C++编写ROS发布与订阅
ROS学习笔记三:编写第一个ROS节点程序
ROS学习笔记二:ROS系统架构及概念
ROS学习笔记一:ROS安装与测试
Linux常用操作指令
[C++11新特性] 智能指针详解
C++ 模板
C++ 异常处理
热门文章
C++ 文件和流
(转)MFC鼠标单击消息拦截双击消息
(转)MFC:Windows如何区分鼠标双击和两次单击
(转)MFC的ClistCtrl删除选中多行项目
(转)如何根据RGB值来判断这是种什么颜色?
(转)ALSA配置文件(alsa.conf, asoundrc, asound.conf)及其自动加载 And HDMI Adiuo
ffmpeg avformat_open_input返回失败的解决办法
(转)引用---FFMPEG解码过程
(转)一种开源的跨平台视频开发框架:VideoLAN
(转)几个开源的视频编解码器介绍
Copyright © 2011-2022 走看看