zoukankan
html css js c++ java
运用API函数获取系统信息(转)
using
System;
using
System.Drawing;
using
System.Collections;
using
System.ComponentModel;
using
System.Windows.Forms;
using
System.Data;
using
System.Runtime.InteropServices;
using
System.Text;
namespace
WindowsApplication10
{
/**/
///
<summary>
///
Form1 的摘要说明。
///
</summary>
public
class
Form1 : System.Windows.Forms.Form
{
private
System.Windows.Forms.GroupBox groupBox1;
private
System.Windows.Forms.GroupBox groupBox2;
private
System.Windows.Forms.GroupBox groupBox3;
private
System.Windows.Forms.GroupBox groupBox4;
private
System.Windows.Forms.Button button1;
private
System.Windows.Forms.Label AvailVirtual;
private
System.Windows.Forms.Label TotalVirtual;
private
System.Windows.Forms.Label AvailPageFile;
private
System.Windows.Forms.Label TotalPageFile;
private
System.Windows.Forms.Label AvailPhys;
private
System.Windows.Forms.Label TotalPhys;
private
System.Windows.Forms.Label MemoryLoad;
private
System.Windows.Forms.Label PageSize;
private
System.Windows.Forms.Label OemId;
private
System.Windows.Forms.Label ProcessorLevel;
private
System.Windows.Forms.Label ProcessorType;
private
System.Windows.Forms.Label NumberOfProcessors;
private
System.Windows.Forms.Label SystemDirectory;
private
System.Windows.Forms.Label WindowsDirectory;
private
System.Windows.Forms.Label Time;
private
System.Windows.Forms.Label Date;
/**/
///
<summary>
///
必需的设计器变量。
///
</summary>
private
System.ComponentModel.Container components
=
null
;
[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);
[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;
}
public
Form1()
{
//
//
Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
//
TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
/**/
///
<summary>
///
清理所有正在使用的资源。
///
</summary>
protected
override
void
Dispose(
bool
disposing )
{
if
( disposing )
{
if
(components
!=
null
)
{
components.Dispose();
}
}
base
.Dispose( disposing );
}
Windows 窗体设计器生成的代码
#region
Windows 窗体设计器生成的代码
/**/
///
<summary>
///
设计器支持所需的方法 - 不要使用代码编辑器修改
///
此方法的内容。
///
</summary>
private
void
InitializeComponent()
{
this
.groupBox1
=
new
System.Windows.Forms.GroupBox();
this
.groupBox2
=
new
System.Windows.Forms.GroupBox();
this
.groupBox3
=
new
System.Windows.Forms.GroupBox();
this
.groupBox4
=
new
System.Windows.Forms.GroupBox();
this
.button1
=
new
System.Windows.Forms.Button();
this
.Time
=
new
System.Windows.Forms.Label();
this
.Date
=
new
System.Windows.Forms.Label();
this
.TotalPhys
=
new
System.Windows.Forms.Label();
this
.MemoryLoad
=
new
System.Windows.Forms.Label();
this
.AvailPageFile
=
new
System.Windows.Forms.Label();
this
.TotalVirtual
=
new
System.Windows.Forms.Label();
this
.AvailPhys
=
new
System.Windows.Forms.Label();
this
.TotalPageFile
=
new
System.Windows.Forms.Label();
this
.PageSize
=
new
System.Windows.Forms.Label();
this
.OemId
=
new
System.Windows.Forms.Label();
this
.AvailVirtual
=
new
System.Windows.Forms.Label();
this
.ProcessorLevel
=
new
System.Windows.Forms.Label();
this
.NumberOfProcessors
=
new
System.Windows.Forms.Label();
this
.ProcessorType
=
new
System.Windows.Forms.Label();
this
.WindowsDirectory
=
new
System.Windows.Forms.Label();
this
.SystemDirectory
=
new
System.Windows.Forms.Label();
this
.groupBox1.SuspendLayout();
this
.groupBox2.SuspendLayout();
this
.groupBox3.SuspendLayout();
this
.groupBox4.SuspendLayout();
this
.SuspendLayout();
//
//
groupBox1
//
this
.groupBox1.Controls.Add(
this
.Date);
this
.groupBox1.Controls.Add(
this
.Time);
this
.groupBox1.Location
=
new
System.Drawing.Point(
8
,
16
);
this
.groupBox1.Name
=
"
groupBox1
"
;
this
.groupBox1.Size
=
new
System.Drawing.Size(
240
,
128
);
this
.groupBox1.TabIndex
=
0
;
this
.groupBox1.TabStop
=
false
;
this
.groupBox1.Text
=
"
groupBox1
"
;
//
//
groupBox2
//
this
.groupBox2.Controls.Add(
this
.TotalVirtual);
this
.groupBox2.Controls.Add(
this
.AvailVirtual);
this
.groupBox2.Location
=
new
System.Drawing.Point(
296
,
24
);
this
.groupBox2.Name
=
"
groupBox2
"
;
this
.groupBox2.Size
=
new
System.Drawing.Size(
240
,
120
);
this
.groupBox2.TabIndex
=
1
;
this
.groupBox2.TabStop
=
false
;
this
.groupBox2.Text
=
"
groupBox2
"
;
//
//
groupBox3
//
this
.groupBox3.Controls.Add(
this
.ProcessorType);
this
.groupBox3.Controls.Add(
this
.NumberOfProcessors);
this
.groupBox3.Controls.Add(
this
.MemoryLoad);
this
.groupBox3.Controls.Add(
this
.PageSize);
this
.groupBox3.Controls.Add(
this
.OemId);
this
.groupBox3.Controls.Add(
this
.ProcessorLevel);
this
.groupBox3.Location
=
new
System.Drawing.Point(
296
,
160
);
this
.groupBox3.Name
=
"
groupBox3
"
;
this
.groupBox3.Size
=
new
System.Drawing.Size(
240
,
256
);
this
.groupBox3.TabIndex
=
1
;
this
.groupBox3.TabStop
=
false
;
this
.groupBox3.Text
=
"
groupBox2
"
;
//
//
groupBox4
//
this
.groupBox4.Controls.Add(
this
.AvailPageFile);
this
.groupBox4.Controls.Add(
this
.TotalPageFile);
this
.groupBox4.Controls.Add(
this
.AvailPhys);
this
.groupBox4.Controls.Add(
this
.TotalPhys);
this
.groupBox4.Controls.Add(
this
.WindowsDirectory);
this
.groupBox4.Location
=
new
System.Drawing.Point(
16
,
160
);
this
.groupBox4.Name
=
"
groupBox4
"
;
this
.groupBox4.Size
=
new
System.Drawing.Size(
240
,
296
);
this
.groupBox4.TabIndex
=
2
;
this
.groupBox4.TabStop
=
false
;
this
.groupBox4.Text
=
"
groupBox2
"
;
//
//
button1
//
this
.button1.Location
=
new
System.Drawing.Point(
248
,
456
);
this
.button1.Name
=
"
button1
"
;
this
.button1.TabIndex
=
3
;
this
.button1.Text
=
"
button1
"
;
this
.button1.Click
+=
new
System.EventHandler(
this
.button1_Click);
//
//
Time
//
this
.Time.Location
=
new
System.Drawing.Point(
32
,
48
);
this
.Time.Name
=
"
Time
"
;
this
.Time.Size
=
new
System.Drawing.Size(
160
,
23
);
this
.Time.TabIndex
=
0
;
this
.Time.Text
=
"
label1
"
;
//
//
Date
//
this
.Date.Location
=
new
System.Drawing.Point(
32
,
96
);
this
.Date.Name
=
"
Date
"
;
this
.Date.Size
=
new
System.Drawing.Size(
160
,
23
);
this
.Date.TabIndex
=
1
;
this
.Date.Text
=
"
label2
"
;
//
//
TotalPhys
//
this
.TotalPhys.Location
=
new
System.Drawing.Point(
32
,
208
);
this
.TotalPhys.Name
=
"
TotalPhys
"
;
this
.TotalPhys.Size
=
new
System.Drawing.Size(
160
,
23
);
this
.TotalPhys.TabIndex
=
2
;
this
.TotalPhys.Text
=
"
label3
"
;
//
//
MemoryLoad
//
this
.MemoryLoad.Location
=
new
System.Drawing.Point(
40
,
56
);
this
.MemoryLoad.Name
=
"
MemoryLoad
"
;
this
.MemoryLoad.Size
=
new
System.Drawing.Size(
168
,
23
);
this
.MemoryLoad.TabIndex
=
3
;
this
.MemoryLoad.Text
=
"
label4
"
;
//
//
AvailPageFile
//
this
.AvailPageFile.Location
=
new
System.Drawing.Point(
32
,
64
);
this
.AvailPageFile.Name
=
"
AvailPageFile
"
;
this
.AvailPageFile.Size
=
new
System.Drawing.Size(
160
,
23
);
this
.AvailPageFile.TabIndex
=
4
;
this
.AvailPageFile.Text
=
"
label5
"
;
//
//
TotalVirtual
//
this
.TotalVirtual.Location
=
new
System.Drawing.Point(
40
,
40
);
this
.TotalVirtual.Name
=
"
TotalVirtual
"
;
this
.TotalVirtual.Size
=
new
System.Drawing.Size(
168
,
23
);
this
.TotalVirtual.TabIndex
=
5
;
this
.TotalVirtual.Text
=
"
label6
"
;
//
//
AvailPhys
//
this
.AvailPhys.Location
=
new
System.Drawing.Point(
32
,
160
);
this
.AvailPhys.Name
=
"
AvailPhys
"
;
this
.AvailPhys.Size
=
new
System.Drawing.Size(
160
,
23
);
this
.AvailPhys.TabIndex
=
6
;
this
.AvailPhys.Text
=
"
label7
"
;
//
//
TotalPageFile
//
this
.TotalPageFile.Location
=
new
System.Drawing.Point(
32
,
112
);
this
.TotalPageFile.Name
=
"
TotalPageFile
"
;
this
.TotalPageFile.Size
=
new
System.Drawing.Size(
160
,
23
);
this
.TotalPageFile.TabIndex
=
7
;
this
.TotalPageFile.Text
=
"
label8
"
;
//
//
PageSize
//
this
.PageSize.Location
=
new
System.Drawing.Point(
40
,
96
);
this
.PageSize.Name
=
"
PageSize
"
;
this
.PageSize.Size
=
new
System.Drawing.Size(
168
,
23
);
this
.PageSize.TabIndex
=
8
;
this
.PageSize.Text
=
"
label9
"
;
//
//
OemId
//
this
.OemId.Location
=
new
System.Drawing.Point(
40
,
144
);
this
.OemId.Name
=
"
OemId
"
;
this
.OemId.Size
=
new
System.Drawing.Size(
168
,
23
);
this
.OemId.TabIndex
=
9
;
this
.OemId.Text
=
"
label10
"
;
//
//
AvailVirtual
//
this
.AvailVirtual.Location
=
new
System.Drawing.Point(
40
,
80
);
this
.AvailVirtual.Name
=
"
AvailVirtual
"
;
this
.AvailVirtual.Size
=
new
System.Drawing.Size(
168
,
23
);
this
.AvailVirtual.TabIndex
=
10
;
this
.AvailVirtual.Text
=
"
label11
"
;
//
//
ProcessorLevel
//
this
.ProcessorLevel.Location
=
new
System.Drawing.Point(
40
,
184
);
this
.ProcessorLevel.Name
=
"
ProcessorLevel
"
;
this
.ProcessorLevel.Size
=
new
System.Drawing.Size(
168
,
23
);
this
.ProcessorLevel.TabIndex
=
11
;
this
.ProcessorLevel.Text
=
"
label12
"
;
//
//
NumberOfProcessors
//
this
.NumberOfProcessors.Location
=
new
System.Drawing.Point(
40
,
24
);
this
.NumberOfProcessors.Name
=
"
NumberOfProcessors
"
;
this
.NumberOfProcessors.Size
=
new
System.Drawing.Size(
168
,
23
);
this
.NumberOfProcessors.TabIndex
=
12
;
this
.NumberOfProcessors.Text
=
"
label1
"
;
//
//
ProcessorType
//
this
.ProcessorType.Location
=
new
System.Drawing.Point(
40
,
216
);
this
.ProcessorType.Name
=
"
ProcessorType
"
;
this
.ProcessorType.Size
=
new
System.Drawing.Size(
168
,
23
);
this
.ProcessorType.TabIndex
=
13
;
this
.ProcessorType.Text
=
"
label2
"
;
//
//
WindowsDirectory
//
this
.WindowsDirectory.Location
=
new
System.Drawing.Point(
32
,
24
);
this
.WindowsDirectory.Name
=
"
WindowsDirectory
"
;
this
.WindowsDirectory.Size
=
new
System.Drawing.Size(
160
,
23
);
this
.WindowsDirectory.TabIndex
=
11
;
this
.WindowsDirectory.Text
=
"
label1
"
;
//
//
SystemDirectory
//
this
.SystemDirectory.Location
=
new
System.Drawing.Point(
32
,
400
);
this
.SystemDirectory.Name
=
"
SystemDirectory
"
;
this
.SystemDirectory.TabIndex
=
2
;
this
.SystemDirectory.Text
=
"
label2
"
;
//
//
Form1
//
this
.AutoScaleBaseSize
=
new
System.Drawing.Size(
6
,
14
);
this
.ClientSize
=
new
System.Drawing.Size(
568
,
507
);
this
.Controls.Add(
this
.button1);
this
.Controls.Add(
this
.groupBox1);
this
.Controls.Add(
this
.groupBox2);
this
.Controls.Add(
this
.groupBox3);
this
.Controls.Add(
this
.groupBox4);
this
.Controls.Add(
this
.SystemDirectory);
this
.Name
=
"
Form1
"
;
this
.Text
=
"
Form1
"
;
this
.groupBox1.ResumeLayout(
false
);
this
.groupBox2.ResumeLayout(
false
);
this
.groupBox3.ResumeLayout(
false
);
this
.groupBox4.ResumeLayout(
false
);
this
.ResumeLayout(
false
);
}
#endregion
/**/
///
<summary>
///
应用程序的主入口点。
///
</summary>
[STAThread]
static
void
Main()
{
Application.Run(
new
Form1());
}
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()
+
"
秒
"
;
}
}
}
查看全文
相关阅读:
求教——使用node做表单,刷新浏览器页面,浏览器为什么会重复提交上次所填的信息
sublime 插件
h5专题应该兼容那些浏览器?
省市区县镇级联数据JS版
使用 iscroll 实现焦点图无限循环
DAO与DTO的区别
Struts2的DMI的开启方法
在JSP中的java代码中调用js代码
Eclipse发布web项目时报错:Multiple Contexts have a path of "/xxx".
记录:将MyEclipse的Dynamic Web Project项目部署到Eclipse的过程
原文地址:https://www.cnblogs.com/jhtchina/p/334855.html
最新文章
工作问题记录-通讯服务器没有任何连接
escu问题及解决
C语言如何在可变参数函数中使用printf?
虚拟机VMware显示“内部错误”的解决方法
printf 汇总
vmware安装centos问题
cookie和session
Django文件上传实例
python爬取妹子网美女图片
Django返回json数据用法示例
热门文章
python中enumerate()的用法
Python 的类的下划线命名有什么不同?
MySQL锁机制详解及死锁处理方式
MySQL数据类型和常用字段属性总结
Django获取checkbox勾选框的值(转载)
Windows10下python3和python2同时安装 python2.exe、python3.exe和pip2、pip3设置
js与cookie的domain和path之间的关系
背景音乐插件
h5自动生成工具
JSON.parse解析单引号名值对报错
Copyright © 2011-2022 走看看