C#程序设计获取系统信息的Windows窗体主要向你介绍了使用从C#实现关机程序时的界面相关,那么具体的是什麽过程呢?本文就向你介绍相关的内容。

C#程序规划获取体系信息的Windows窗体的布景许多软件都有主动关机功用,特别是在长期下载的时分,这个功用可是使你不用以守候在计算机前面,而电脑却能依照您事前的设定主动封闭。现在咱们用visual C#来编写一个多功用的关机程序。C#程序规划获取体系信息的Windows窗体是该程序的一部分,现在让咱们来看看详细的进程。

C#程序规划获取体系信息的Windows窗体完成的过程:

C#程序规划获取体系信息的Windows窗体完成1. 界面的规划

向工程中增加一个Windows窗体并向窗体中增加如下控件:

C#程序设计获取体系信息的Windows窗体浅析(基于C#语言设计实现一个大型Windows窗体应用程序)  C#程序设计 Windows窗体 第1张

C#程序规划获取体系信息的Windows窗体完成2. 在窗体类中引证API函数

  1. usingSystem.Runtime.InteropServices;
  2. usingSystem.Text;
  3. [DllImport("kernel32")]
  4. publicstaticexternvoidGetWindowsDirectory(StringBuilderWinDir,intcount);
  5. [DllImport("kernel32")]
  6. publicstaticexternvoidGetSystemDirectory(StringBuilderSysDir,intcount);
  7. [DllImport("kernel32")]
  8. publicstaticexternvoidGetSystemInfo(refCPU_INFOcpuinfo);
  9. [DllImport("kernel32")]
  10. publicstaticexternvoidGlobalMemoryStatus(refMEMORY_INFOmeminfo);
  11. [DllImport("kernel32")]
  12. publicstaticexternvoidGetSystemTime(refSYSTEMTIME_INFOstinfo);

以上几个API的效果别离是获取体系途径,获得CPU相关信息,获得内存的相关信息,获得体系时刻等。

C#程序规划获取体系信息的Windows窗体完成3. 界说以下各结构

在声明完一切的API函数后,咱们发现后三个函数别离用到了CPU_INFO、MEMORY_INFO、SYSTEMTIME_INFO等结构,这些结构并非是.Net内部的,它们从何而来?其实,咱们在用到以上API调用时均需用到以上结构,咱们将函数调用获得的信息存放在以上的结构体中,***回来给程序输出。这些结构体比较复杂,可是假如开发者可以娴熟运用,那么整个API国际将尽在开发者的把握之中。以下便是上述结构体的声明:

  1. //界说CPU的信息结构
  2. [StructLayout(LayoutKind.Sequential)]
  3. publicstructCPU_INFO
  4. {
  5. publicuintdwOemId;
  6. publicuintdwPageSize;
  7. publicuintlpMinimumApplicationAddress;
  8. publicuintlpMaximumApplicationAddress;
  9. publicuintdwActiveProcessorMask;
  10. publicuintdwNumberOfProcessors;
  11. publicuintdwProcessorType;
  12. publicuintdwAllocationGranularity;
  13. publicuintdwProcessorLevel;
  14. publicuintdwProcessorRevision;
  15. }
  16. file://界说内存的信息结构
  17. [StructLayout(LayoutKind.Sequential)]
  18. publicstructMEMORY_INFO
  19. {
  20. publicuintdwLength;
  21. publicuintdwMemoryLoad;
  22. publicuintdwTotalPhys;
  23. publicuintdwAvailPhys;
  24. publicuintdwTotalPageFile;
  25. publicuintdwAvailPageFile;
  26. publicuintdwTotalVirtual;
  27. publicuintdwAvailVirtual;
  28. }
  29. file://界说体系时刻的信息结构
  30. [StructLayout(LayoutKind.Sequential)]
  31. publicstructSYSTEMTIME_INFO
  32. {
  33. publicushortwYear;
  34. publicushortwMonth;
  35. publicushortwDayOfWeek;
  36. publicushortwDay;
  37. publicushortwHour;
  38. publicushortwMinute;
  39. publicushortwSecond;
  40. publicushortwMilliseconds;
  41. }

C#程序规划获取体系信息的Windows窗体完成4. 编写窗体类的办法

  1. privatevoidbutton1_Click(objectsender,System.EventArgse)
  2. {
  3. file://调用GetWindowsDirectory和GetSystemDirectory函数别离获得Windows途径和体系途径
  4. constintnChars=128;
  5. StringBuilderBuff=newStringBuilder(nChars);
  6. GetWindowsDirectory(Buff,nChars);
  7. WindowsDirectory.Text="Windows途径:"+Buff.ToString();
  8. GetSystemDirectory(Buff,nChars);
  9. SystemDirectory.Text="体系途径:"+Buff.ToString();
  10. file://调用GetSystemInfo函数获取CPU的相关信息
  11. CPU_INFOCpuInfo;
  12. CpuInfo=newCPU_INFO();
  13. GetSystemInfo(refCpuInfo);
  14. NumberOfProcessors.Text=
  15. "本计算机中有"+CpuInfo.dwNumberOfProcessors.ToString()+"个CPU";
  16. ProcessorType.Text="CPU的类型为"+CpuInfo.dwProcessorType.ToString();
  17. ProcessorLevel.Text="CPU等级为"+CpuInfo.dwProcessorLevel.ToString();
  18. OemId.Text="CPU的OEMID为"+CpuInfo.dwOemId.ToString();
  19. PageSize.Text="CPU中的页面巨细为"+CpuInfo.dwPageSize.ToString();
  20. file://调用GlobalMemoryStatus函数获取内存的相关信息
  21. MEMORY_INFOMemInfo;
  22. MemInfo=newMEMORY_INFO();
  23. GlobalMemoryStatus(refMemInfo);
  24. MemoryLoad.Text=
  25. MemInfo.dwMemoryLoad.ToString()+"%的内存正在运用";
  26. TotalPhys.Text=
  27. "物理内存共有"+MemInfo.dwTotalPhys.ToString()+"字节";
  28. AvailPhys.Text=
  29. "可运用的物理内存有"+MemInfo.dwAvailPhys.ToString()+"字节";
  30. TotalPageFile.Text=
  31. "交流文件总巨细为"+MemInfo.dwTotalPageFile.ToString()+"字节";
  32. AvailPageFile.Text=
  33. "尚可交流文件巨细为"+MemInfo.dwAvailPageFile.ToString()+"字节";
  34. TotalVirtual.Text=
  35. "总虚拟内存有"+MemInfo.dwTotalVirtual.ToString()+"字节";
  36. AvailVirtual.Text=
  37. "未用虚拟内存有"+MemInfo.dwAvailVirtual.ToString()+"字节";
  38. file://调用GetSystemTime函数获取体系时刻信息
  39. SYSTEMTIME_INFOStInfo;
  40. StInfo=newSYSTEMTIME_INFO();
  41. GetSystemTime(refStInfo);
  42. Date.Text=StInfo.wYear.ToString()+
  43. "年"+StInfo.wMonth.ToString()+"月"+
  44. StInfo.wDay.ToString()+"日";
  45. Time.Text=(StInfo.wHour+8).ToString()+
  46. "点"+StInfo.wMinute.ToString()+"分"+
  47. StInfo.wSecond.ToString()+"秒";
  48. }

C#程序规划获取体系信息的Windows窗体完成的基本情况就向你介绍到这儿,期望对你了解和学习C#程序规划获取体系信息的Windows窗体完成有所协助。

【修改引荐】

  1. 怎么初始化数组详解
  2. C#数组操作的领会浅谈
  3. C#关机代码实例详解
  4. C#关机代码的完成浅析
  5. C#程序规划封闭Windows窗体浅析
转载请说明出处
知优网 » C#程序设计获取体系信息的Windows窗体浅析(基于C#语言设计实现一个大型Windows窗体应用程序)

发表评论

您需要后才能发表评论