用C#获取系统有关环境、属性
来源:互联网 发布:淘宝大图是做什么用的 编辑:程序博客网 时间:2024/05/16 06:16
如果利用C#获取系统有关环境和属性,这个也是在网上问得比较多的问题,不过大部分只有提问没有回答,最近正好想做有关方面的东西,整理了一下,提供给大家,希望能给大家提供参考意见:
首先需要定义几个结构(struct) ,便于DllImport作为返回参数调用。以下是代码:
CpuInfo.cs
using System;
using System.Configuration;
using System.Runtime.InteropServices;
//定义CPU的信息结构
[StructLayout(LayoutKind.Sequential)]
public struct CpuInfo
...{
//OEM ID
public uint dwOemId;
//页面大小
public uint dwPageSize;
public uint lpMinimumApplicationAddress;
public uint lpMaximumApplicationAddress;
public uint dwActiveProcessorMask;
//CPU个数
public uint dwNumberOfProcessors;
//CPU类型
public uint dwProcessorType;
public uint dwAllocationGranularity;
// CPU等级
public uint dwProcessorLevel;
public uint dwProcessorRevision;
}
MemoryInfo.cs
using System;
using System.Configuration;
using System.Runtime.InteropServices;
//定义内存的信息结构
[StructLayout(LayoutKind.Sequential)]
public struct MemoryInfo
...{
public uint dwLength;
//已经使用的内存
public uint dwMemoryLoad;
//总物理内存大小
public uint dwTotalPhys;
//可用物理内存大小
public uint dwAvailPhys;
/**//// <summary>
/// 交换文件总大小
/// </summary>
public uint dwTotalPageFile;
/**//// <summary>
/// 可用交换文件大小
/// </summary>
public uint dwAvailPageFile;
/**//// <summary>
/// 总虚拟内存大小
/// </summary>
public uint dwTotalVirtual;
/**//// <summary>
/// 可用虚拟内存大小
/// </summary>
public uint dwAvailVirtual;
}
SystemTimeInfo.cs
using System;
using System.Configuration;
using System.Runtime.InteropServices;
/**//**
* LayoutKind.Automatic:为了提高效率允许运行态对类型成员重新排序
* 注意:永远不要使用这个选项来调用不受管辖的动态链接库函数。
* LayoutKind.Explicit:对每个域按照FieldOffset属性对类型成员排序
* LayoutKind.Sequential:对出现在受管辖类型定义地方的不受管辖内存中的类型成员进行排序。
*/
/**//// <summary>
/// 定义系统时间的信息结构
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct SystemTimeInfo
...{
/**//// <summary>
/// 年
/// </summary>
public ushort wYear;
/**//// <summary>
/// 月
/// </summary>
public ushort wMonth;
/**//// <summary>
/// 星期
/// </summary>
public ushort wDayOfWeek;
/**//// <summary>
/// 天
/// </summary>
public ushort wDay;
/**//// <summary>
/// 小时
/// </summary>
public ushort wHour;
/**//// <summary>
/// 分钟
/// </summary>
public ushort wMinute;
/**//// <summary>
/// 秒
/// </summary>
public ushort wSecond;
/**//// <summary>
/// 毫秒
/// </summary>
public ushort wMilliseconds;
}
首先需要定义几个结构(struct) ,便于DllImport作为返回参数调用。以下是代码:
CpuInfo.cs
using System;
using System.Configuration;
using System.Runtime.InteropServices;
//定义CPU的信息结构
[StructLayout(LayoutKind.Sequential)]
public struct CpuInfo
...{
//OEM ID
public uint dwOemId;
//页面大小
public uint dwPageSize;
public uint lpMinimumApplicationAddress;
public uint lpMaximumApplicationAddress;
public uint dwActiveProcessorMask;
//CPU个数
public uint dwNumberOfProcessors;
//CPU类型
public uint dwProcessorType;
public uint dwAllocationGranularity;
// CPU等级
public uint dwProcessorLevel;
public uint dwProcessorRevision;
}
MemoryInfo.cs
using System;
using System.Configuration;
using System.Runtime.InteropServices;
//定义内存的信息结构
[StructLayout(LayoutKind.Sequential)]
public struct MemoryInfo
...{
public uint dwLength;
//已经使用的内存
public uint dwMemoryLoad;
//总物理内存大小
public uint dwTotalPhys;
//可用物理内存大小
public uint dwAvailPhys;
/**//// <summary>
/// 交换文件总大小
/// </summary>
public uint dwTotalPageFile;
/**//// <summary>
/// 可用交换文件大小
/// </summary>
public uint dwAvailPageFile;
/**//// <summary>
/// 总虚拟内存大小
/// </summary>
public uint dwTotalVirtual;
/**//// <summary>
/// 可用虚拟内存大小
/// </summary>
public uint dwAvailVirtual;
}
SystemTimeInfo.cs
using System;
using System.Configuration;
using System.Runtime.InteropServices;
/**//**
* LayoutKind.Automatic:为了提高效率允许运行态对类型成员重新排序
* 注意:永远不要使用这个选项来调用不受管辖的动态链接库函数。
* LayoutKind.Explicit:对每个域按照FieldOffset属性对类型成员排序
* LayoutKind.Sequential:对出现在受管辖类型定义地方的不受管辖内存中的类型成员进行排序。
*/
/**//// <summary>
/// 定义系统时间的信息结构
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct SystemTimeInfo
...{
/**//// <summary>
/// 年
/// </summary>
public ushort wYear;
/**//// <summary>
/// 月
/// </summary>
public ushort wMonth;
/**//// <summary>
/// 星期
/// </summary>
public ushort wDayOfWeek;
/**//// <summary>
/// 天
/// </summary>
public ushort wDay;
/**//// <summary>
/// 小时
/// </summary>
public ushort wHour;
/**//// <summary>
/// 分钟
/// </summary>
public ushort wMinute;
/**//// <summary>
/// 秒
/// </summary>
public ushort wSecond;
/**//// <summary>
/// 毫秒
/// </summary>
public ushort wMilliseconds;
}
- 用C#获取系统有关环境、属性
- 用C#获取系统有关环境、属性
- 用C#获取系统有关环境、属性
- 用C#获取系统有关环境、属性
- 用C#获取系统有关环境、属性
- 用C#获取系统有关环境、属性
- 用C#获取系统有关环境、属性
- 如果利用C#获取系统有关环境和属性
- 用C#获取CPU编号、硬盘编号等系统有关环境、属性
- 用C#获取系统有关环境、属性(c/s&b/s)
- 用C#获取系统有关环境、属性(c/s&b/s)
- 用C#获取CPU编号、硬盘编号等系统有关环境、属性
- 用C#获取CPU编号、硬盘编号等系统有关环境、属性
- 用C#获取CPU编号、硬盘编号等系统有关环境、属性
- 用C#获取CPU编号、硬盘编号等系统有关环境、属性
- 用C#获取系统有关环境、属性(c/s&b/s)
- 用C#获取CPU编号、硬盘编号等系统有关环境、属性
- 用C#获取CPU编号、硬盘编号等与系统有关的环境属性
- 中国政府鼓励外资进入中国医疗卫生市场
- 医院高层领导在医院信息化中的角色定位及作用
- 基于.net框架下的插件系统的实现方法(补充)
- 基于.net框架下的插件系统的实现方法
- 基于.Net平台应用程序唯一运行实例C#代码实现
- 用C#获取系统有关环境、属性
- 软件架构和软件框架-用例模型设计应用(1)
- javascript函数库(全)
- 不经保存,直接读取上传文件的内容
- 月光族如何制定脱贫计划
- 快速拷贝字符串的方法memmove
- 图test
- Join Look Of The Year Now
- 这个cs结构的系统是如何实现数据显示的