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()
+
"
秒
"
;
}
}
}
查看全文
相关阅读:
力扣算法题—070爬楼梯
力扣算法题—069x的平方根
力扣算法题—068文本左右对齐
天梯杯 L2-008. 最长对称子串
CODE[VS] 1294 全排列
hdu 1829 A Bug's Life(并查集)
HDU 1213 How Many Tables
POJ 1182 食物链(经典并查集) (多组输入有时乱加也会错!)
天梯杯 L2-010. 排座位
The Suspects POJ1611
原文地址:https://www.cnblogs.com/jhtchina/p/334855.html
最新文章
VBScript脚本
【操作系统】Mac环境配置
【Python3】py脚本打包成exe
Jzoj4791 矩阵
Jzoj4791 矩阵
Jzoj4790 选数问题
Jzoj4790 选数问题
Jzoj4789 货物运输
Jzoj4789 货物运输
Jzoj4788 序列
热门文章
Jzoj4788 序列
一些基础算法的模板(持续更新)
一些基础算法的模板(持续更新)
力扣算法题—077组合
力扣算法题—076最小覆盖子串
力扣算法题—075颜色分类
力扣算法题—074搜索二维矩阵
力扣算法题—073矩阵置零
力扣算法题—072编辑距离
力扣算法题—071简化路径
Copyright © 2011-2022 走看看