2024年6月2日发(作者:)

C#获取系统信息

方法一:利用注册表获取

//RegistryKey 类所需要的包:

//RegistryKey 类所需要的包:

using 32;

//DllImport方法所需要的包:

using pServices;

//StringBuilder所需要的包:

using ;

//声明API函数

[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(tial)]

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(tial)]

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(tial)]

public struct SYSTEMTIME_INFO

{

public ushort wYear;

public ushort wDay;

public ushort wHour;

public ushort wMinute;

public ushort wSecond;

public ushort wMilliseconds;

}

private void initSysInfoData()

{

//获取操作系统设置

("计算机名 : " + erName );

("是否已连接网络 : " + k );

("用户域 : " + mainName );

("当前线程用户名 : " + me );

("启动方式 : " + de );

("菜单的字体 : " + nt );

("显示器的数目 : " + rCount );

("鼠标已安装 : " + resent );

("鼠标按钮数 : " + uttons);

("是否交互模式 : " + teractive );

("屏幕界限: " + lScreen );

}

public void initEnvData()

{

//获取程序运行的相关信息.

("命令行:"+ dLine);

("命令行参数:"+ (", ",mandLineArgs()));

("当前目录:"+ tDirectory);

("操作系统版本:"+ ion);

("系统目录:"+ Directory);

("堆栈信息:"+ race);

("用户域:"+ mainName);