现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

产品加密之获取服务器硬件信息(主板,CPU,硬盘,内存等)

2013-01-28 22:30 工业·编程 ⁄ 共 15497字 ⁄ 字号 暂无评论

在很多情况下,你可能都需要得到微机的硬件信息。比如:你想给你的软件加锁,不让别人随便访问。

最有效的办法是获取CPU的序列号,然后让你的软件只能运行在有这样的CPU序列号的机器上。众所周知,CPU序列号是唯一的!因此,这样就可以为你的软件加锁了。

另外一个需要硬盘信息的例子是:硬盘有几个分区,每个分区各有多少剩余空间。当你正在做一个多媒体应用程序的时候,你可能也需要获得有关声卡、显卡的硬件信息。

首先,你必须知道这个应用程序的功能是使用System.Management这个类得到的。因此,你需要加上下面的这句话:

[c-sharp] view plaincopy

  1. using System.Management; 

为了获取硬件信息,你还需要创建一个ManagementObjectSearcher对象。

[c-sharp] view plaincopy

  1. ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from " + Key); 

上面代码的Key是一个将被对应正确的数据填入的值。例如,获取CPU的信息,就需要把Key值设成Win32_Processor。所有Key可能的值,列举如下:

[c-sharp] view plaincopy

  1. Win32_1394Controller 
  2. Win32_1394ControllerDevice 
  3. Win32_Account 
  4. Win32_AccountSID 
  5. Win32_ACE 
  6. Win32_ActionCheck 
  7. Win32_AllocatedResource 
  8. Win32_ApplicationCommandLine 
  9. Win32_ApplicationService 
  10. Win32_AssociatedBattery 
  11. Win32_AssociatedProcessorMemory 
  12. Win32_BaseBoard 
  13. Win32_BaseService 
  14. Win32_Battery 
  15. Win32_Binary 
  16. Win32_BindImageAction 
  17. Win32_BIOS 
  18. Win32_BootConfiguration 
  19. Win32_Bus 
  20. Win32_CacheMemory 
  21. Win32_CDROMDrive 
  22. Win32_CheckCheck 
  23. Win32_CIMLogicalDeviceCIMDataFile 
  24. Win32_ClassicCOMApplicationClasses 
  25. Win32_ClassicCOMClass 
  26. Win32_ClassicCOMClassSetting 
  27. Win32_ClassicCOMClassSettings 
  28. Win32_ClassInfoAction 
  29. Win32_ClientApplicationSetting 
  30. Win32_CodecFile 
  31. Win32_COMApplication 
  32. Win32_COMApplicationClasses 
  33. Win32_COMApplicationSettings 
  34. Win32_COMClass 
  35. Win32_ComClassAutoEmulator 
  36. Win32_ComClassEmulator 
  37. Win32_CommandLineAccess 
  38. Win32_ComponentCategory 
  39. Win32_ComputerSystem 
  40. Win32_ComputerSystemProcessor 
  41. Win32_ComputerSystemProduct 
  42. Win32_COMSetting 
  43. Win32_Condition 
  44. Win32_CreateFolderAction 
  45. Win32_CurrentProbe 
  46. Win32_DCOMApplication 
  47. Win32_DCOMApplicationAccessAllowedSetting 
  48. Win32_DCOMApplicationLaunchAllowedSetting 
  49. Win32_DCOMApplicationSetting 
  50. Win32_DependentService 
  51. Win32_Desktop 
  52. Win32_DesktopMonitor 
  53. Win32_DeviceBus 
  54. Win32_DeviceMemoryAddress 
  55. Win32_DeviceSettings 
  56. Win32_Directory 
  57. Win32_DirectorySpecification 
  58. Win32_DiskDrive 
  59. Win32_DiskDriveToDiskPartition 
  60. Win32_DiskPartition 
  61. Win32_DisplayConfiguration 
  62. Win32_DisplayControllerConfiguration 
  63. Win32_DMAChannel 
  64. Win32_DriverVXD 
  65. Win32_DuplicateFileAction 
  66. Win32_Environment 
  67. Win32_EnvironmentSpecification 
  68. Win32_ExtensionInfoAction 
  69. Win32_Fan 
  70. Win32_FileSpecification 
  71. Win32_FloppyController 
  72. Win32_FloppyDrive 
  73. Win32_FontInfoAction 
  74. Win32_Group 
  75. Win32_GroupUser 
  76. Win32_HeatPipe 
  77. Win32_IDEController 
  78. Win32_IDEControllerDevice 
  79. Win32_ImplementedCategory 
  80. Win32_InfraredDevice 
  81. Win32_IniFileSpecification 
  82. Win32_InstalledSoftwareElement 
  83. Win32_IRQResource 
  84. Win32_Keyboard 
  85. Win32_LaunchCondition 
  86. Win32_LoadOrderGroup 
  87. Win32_LoadOrderGroupServiceDependencies 
  88. Win32_LoadOrderGroupServiceMembers 
  89. Win32_LogicalDisk 
  90. Win32_LogicalDiskRootDirectory 
  91. Win32_LogicalDiskToPartition 
  92. Win32_LogicalFileAccess 
  93. Win32_LogicalFileAuditing 
  94. Win32_LogicalFileGroup 
  95. Win32_LogicalFileOwner 
  96. Win32_LogicalFileSecuritySetting 
  97. Win32_LogicalMemoryConfiguration 
  98. Win32_LogicalProgramGroup 
  99. Win32_LogicalProgramGroupDirectory 
  100. Win32_LogicalProgramGroupItem 
  101. Win32_LogicalProgramGroupItemDataFile 
  102. Win32_LogicalShareAccess 
  103. Win32_LogicalShareAuditing 
  104. Win32_LogicalShareSecuritySetting 
  105. Win32_ManagedSystemElementResource 
  106. Win32_MemoryArray 
  107. Win32_MemoryArrayLocation 
  108. Win32_MemoryDevice 
  109. Win32_MemoryDeviceArray 
  110. Win32_MemoryDeviceLocation 
  111. Win32_MethodParameterClass 
  112. Win32_MIMEInfoAction 
  113. Win32_MotherboardDevice 
  114. Win32_MoveFileAction 
  115. Win32_MSIResource 
  116. Win32_NetworkAdapter 
  117. Win32_NetworkAdapterConfiguration 
  118. Win32_NetworkAdapterSetting 
  119. Win32_NetworkClient 
  120. Win32_NetworkConnection 
  121. Win32_NetworkLoginProfile 
  122. Win32_NetworkProtocol 
  123. Win32_NTEventlogFile 
  124. Win32_NTLogEvent 
  125. Win32_NTLogEventComputer 
  126. Win32_NTLogEventLog 
  127. Win32_NTLogEventUser 
  128. Win32_ODBCAttribute 
  129. Win32_ODBCDataSourceAttribute 
  130. Win32_ODBCDataSourceSpecification 
  131. Win32_ODBCDriverAttribute 
  132. Win32_ODBCDriverSoftwareElement 
  133. Win32_ODBCDriverSpecification 
  134. Win32_ODBCSourceAttribute 
  135. Win32_ODBCTranslatorSpecification 
  136. Win32_OnBoardDevice 
  137. Win32_OperatingSystem 
  138. Win32_OperatingSystemQFE 
  139. Win32_OSRecoveryConfiguration 
  140. Win32_PageFile 
  141. Win32_PageFileElementSetting 
  142. Win32_PageFileSetting 
  143. Win32_PageFileUsage 
  144. Win32_ParallelPort 
  145. Win32_Patch 
  146. Win32_PatchFile 
  147. Win32_PatchPackage 
  148. Win32_PCMCIAController 
  149. Win32_Perf 
  150. Win32_PerfRawData 
  151. Win32_PerfRawData_ASP_ActiveServerPages 
  152. Win32_PerfRawData_ASPNET_114322_ASPNETAppsv114322 
  153. Win32_PerfRawData_ASPNET_114322_ASPNETv114322 
  154. Win32_PerfRawData_ASPNET_ASPNET 
  155. Win32_PerfRawData_ASPNET_ASPNETApplications 
  156. Win32_PerfRawData_IAS_IASAccountingClients 
  157. Win32_PerfRawData_IAS_IASAccountingServer 
  158. Win32_PerfRawData_IAS_IASAuthenticationClients 
  159. Win32_PerfRawData_IAS_IASAuthenticationServer 
  160. Win32_PerfRawData_InetInfo_InternetInformationServicesGlobal 
  161. Win32_PerfRawData_MSDTC_DistributedTransactionCoordinator 
  162. Win32_PerfRawData_MSFTPSVC_FTPService 
  163. Win32_PerfRawData_MSSQLSERVER_SQLServerAccessMethods 
  164. Win32_PerfRawData_MSSQLSERVER_SQLServerBackupDevice 
  165. Win32_PerfRawData_MSSQLSERVER_SQLServerBufferManager 
  166. Win32_PerfRawData_MSSQLSERVER_SQLServerBufferPartition 
  167. Win32_PerfRawData_MSSQLSERVER_SQLServerCacheManager 
  168. Win32_PerfRawData_MSSQLSERVER_SQLServerDatabases 
  169. Win32_PerfRawData_MSSQLSERVER_SQLServerGeneralStatistics 
  170. Win32_PerfRawData_MSSQLSERVER_SQLServerLatches 
  171. Win32_PerfRawData_MSSQLSERVER_SQLServerLocks 
  172. Win32_PerfRawData_MSSQLSERVER_SQLServerMemoryManager 
  173. Win32_PerfRawData_MSSQLSERVER_SQLServerReplicationAgents 
  174. Win32_PerfRawData_MSSQLSERVER_SQLServerReplicationDist 
  175. Win32_PerfRawData_MSSQLSERVER_SQLServerReplicationLogreader 
  176. Win32_PerfRawData_MSSQLSERVER_SQLServerReplicationMerge 
  177. Win32_PerfRawData_MSSQLSERVER_SQLServerReplicationSnapshot 
  178. Win32_PerfRawData_MSSQLSERVER_SQLServerSQLStatistics 
  179. Win32_PerfRawData_MSSQLSERVER_SQLServerUserSettable 
  180. Win32_PerfRawData_NETFramework_NETCLRExceptions 
  181. Win32_PerfRawData_NETFramework_NETCLRInterop 
  182. Win32_PerfRawData_NETFramework_NETCLRJit 
  183. Win32_PerfRawData_NETFramework_NETCLRLoading 
  184. Win32_PerfRawData_NETFramework_NETCLRLocksAndThreads 
  185. Win32_PerfRawData_NETFramework_NETCLRMemory 
  186. Win32_PerfRawData_NETFramework_NETCLRRemoting 
  187. Win32_PerfRawData_NETFramework_NETCLRSecurity 
  188. Win32_PerfRawData_Outlook_Outlook 
  189. Win32_PerfRawData_PerfDisk_PhysicalDisk 
  190. Win32_PerfRawData_PerfNet_Browser 
  191. Win32_PerfRawData_PerfNet_Redirector 
  192. Win32_PerfRawData_PerfNet_Server 
  193. Win32_PerfRawData_PerfNet_ServerWorkQueues 
  194. Win32_PerfRawData_PerfOS_Cache 
  195. Win32_PerfRawData_PerfOS_Memory 
  196. Win32_PerfRawData_PerfOS_Objects 
  197. Win32_PerfRawData_PerfOS_PagingFile 
  198. Win32_PerfRawData_PerfOS_Processor 
  199. Win32_PerfRawData_PerfOS_System 
  200. Win32_PerfRawData_PerfProc_FullImage_Costly 
  201. Win32_PerfRawData_PerfProc_Image_Costly 
  202. Win32_PerfRawData_PerfProc_JobObject 
  203. Win32_PerfRawData_PerfProc_JobObjectDetails 
  204. Win32_PerfRawData_PerfProc_Process 
  205. Win32_PerfRawData_PerfProc_ProcessAddressSpace_Costly 
  206. Win32_PerfRawData_PerfProc_Thread 
  207. Win32_PerfRawData_PerfProc_ThreadDetails_Costly 
  208. Win32_PerfRawData_RemoteAccess_RASPort 
  209. Win32_PerfRawData_RemoteAccess_RASTotal 
  210. Win32_PerfRawData_RSVP_ACSPerRSVPService 
  211. Win32_PerfRawData_Spooler_PrintQueue 
  212. Win32_PerfRawData_TapiSrv_Telephony 
  213. Win32_PerfRawData_Tcpip_ICMP 
  214. Win32_PerfRawData_Tcpip_IP 
  215. Win32_PerfRawData_Tcpip_NBTConnection 
  216. Win32_PerfRawData_Tcpip_NetworkInterface 
  217. Win32_PerfRawData_Tcpip_TCP 
  218. Win32_PerfRawData_Tcpip_UDP 
  219. Win32_PerfRawData_W3SVC_WebService 
  220. Win32_PhysicalMemory 
  221. Win32_PhysicalMemoryArray 
  222. Win32_PhysicalMemoryLocation 
  223. Win32_PNPAllocatedResource 
  224. Win32_PnPDevice 
  225. Win32_PnPEntity 
  226. Win32_PointingDevice 
  227. Win32_PortableBattery 
  228. Win32_PortConnector 
  229. Win32_PortResource 
  230. Win32_POTSModem 
  231. Win32_POTSModemToSerialPort 
  232. Win32_PowerManagementEvent 
  233. Win32_Printer 
  234. Win32_PrinterConfiguration 
  235. Win32_PrinterController 
  236. Win32_PrinterDriverDll 
  237. Win32_PrinterSetting 
  238. Win32_PrinterShare 
  239. Win32_PrintJob 
  240. Win32_PrivilegesStatus 
  241. Win32_Process 
  242. Win32_Processor 
  243. Win32_ProcessStartup 
  244. Win32_Product 
  245. Win32_ProductCheck 
  246. Win32_ProductResource 
  247. Win32_ProductSoftwareFeatures 
  248. Win32_ProgIDSpecification 
  249. Win32_ProgramGroup 
  250. Win32_ProgramGroupContents 
  251. Win32_ProgramGroupOrItem 
  252. Win32_Property 
  253. Win32_ProtocolBinding 
  254. Win32_PublishComponentAction 
  255. Win32_QuickFixEngineering 
  256. Win32_Refrigeration 
  257. Win32_Registry 
  258. Win32_RegistryAction 
  259. Win32_RemoveFileAction 
  260. Win32_RemoveIniAction 
  261. Win32_ReserveCost 
  262. Win32_ScheduledJob 
  263. Win32_SCSIController 
  264. Win32_SCSIControllerDevice 
  265. Win32_SecurityDescriptor 
  266. Win32_SecuritySetting 
  267. Win32_SecuritySettingAccess 
  268. Win32_SecuritySettingAuditing 
  269. Win32_SecuritySettingGroup 
  270. Win32_SecuritySettingOfLogicalFile 
  271. Win32_SecuritySettingOfLogicalShare 
  272. Win32_SecuritySettingOfObject 
  273. Win32_SecuritySettingOwner 
  274. Win32_SelfRegModuleAction 
  275. Win32_SerialPort 
  276. Win32_SerialPortConfiguration 
  277. Win32_SerialPortSetting 
  278. Win32_Service 
  279. Win32_ServiceControl 
  280. Win32_ServiceSpecification 
  281. Win32_ServiceSpecificationService 
  282. Win32_SettingCheck 
  283. Win32_Share 
  284. Win32_ShareToDirectory 
  285. Win32_ShortcutAction 
  286. Win32_ShortcutFile 
  287. Win32_ShortcutSAP 
  288. Win32_SID 
  289. Win32_SMBIOSMemory 
  290. Win32_SoftwareElement 
  291. Win32_SoftwareElementAction 
  292. Win32_SoftwareElementCheck 
  293. Win32_SoftwareElementCondition 
  294. Win32_SoftwareElementResource 
  295. Win32_SoftwareFeature 
  296. Win32_SoftwareFeatureAction 
  297. Win32_SoftwareFeatureCheck 
  298. Win32_SoftwareFeatureParent 
  299. Win32_SoftwareFeatureSoftwareElements 
  300. Win32_SoundDevice 
  301. Win32_StartupCommand 
  302. Win32_SubDirectory 
  303. Win32_SystemAccount 
  304. Win32_SystemBIOS 
  305. Win32_SystemBootConfiguration 
  306. Win32_SystemDesktop 
  307. Win32_SystemDevices 
  308. Win32_SystemDriver 
  309. Win32_SystemDriverPNPEntity 
  310. Win32_SystemEnclosure 
  311. Win32_SystemLoadOrderGroups 
  312. Win32_SystemLogicalMemoryConfiguration 
  313. Win32_SystemMemoryResource 
  314. Win32_SystemNetworkConnections 
  315. Win32_SystemOperatingSystem 
  316. Win32_SystemPartitions 
  317. Win32_SystemProcesses 
  318. Win32_SystemProgramGroups 
  319. Win32_SystemResources 
  320. Win32_SystemServices 
  321. Win32_SystemSetting 
  322. Win32_SystemSlot 
  323. Win32_SystemSystemDriver 
  324. Win32_SystemTimeZone 
  325. Win32_SystemUsers 
  326. Win32_TapeDrive 
  327. Win32_TemperatureProbe 
  328. Win32_Thread 
  329. Win32_TimeZone 
  330. Win32_Trustee 
  331. Win32_TypeLibraryAction 
  332. Win32_UninterruptiblePowerSupply 
  333. Win32_USBController 
  334. Win32_USBControllerDevice 
  335. Win32_UserAccount 
  336. Win32_UserDesktop 
  337. Win32_VideoConfiguration 
  338. Win32_VideoController 
  339. Win32_VideoSettings 
  340. Win32_VoltageProbe 
  341. Win32_WMIElementSetting 
  342. Win32_WMISetting 

首先,调用ManagementObjectSearcher实例(在本文中的例子里为searcher )中的Get()方法,该方法将会把返回信息填在这个实例中。然后,你所要做的就是处理这个实例searcher中的数据。

[c-sharp] view plaincopy

  1. foreach (ManagementObject share in searcher.Get()) 
  2. // Some Codes ...

每个ManagementObject的对象中都有一些,我们所需要的数据,当然我们可以接着这么处理这些数据:

[c-sharp] view plaincopy

  1. foreach (PropertyData PC in share.Properties) 
  2. //some codes ...

源代码:

[c-sharp] view plaincopy

  1. using System; 
  2. using System.Management; // 添加System.Management引用
  3. public class Computer 
  4. public string CpuID; //CPU序列号
  5. public string MacAddress; //网卡地址
  6. public string DiskID; //硬盘序列号
  7. public string MotherBoardID; //主板序列号
  8. public string IpAddress; //IP地址
  9. public string LoginUserName; //系统登录名
  10. public string ComputerName; //计算机名称
  11. public string SystemType; //操作系统
  12. public string TotalPhysicalMemory;//内存大小,单位:M
  13. private static Computer _instance; 
  14. public static Computer Instance() 
  15.     { 
  16. if (_instance == null) 
  17.             _instance = new Computer(); 
  18. return _instance; 
  19.     } 
  20. /// <summary>
  21. /// 构造函数
  22. /// </summary>
  23. public Computer() 
  24.     { 
  25.         CpuID = GetCpuID(); 
  26.         MacAddress = GetMacAddress(); 
  27.         DiskID = GetDiskID(); 
  28.         MotherBoardID = GetMotherBoardSerialNumber(); 
  29.         IpAddress = GetIPAddress(); 
  30.         LoginUserName = GetUserName(); 
  31.         SystemType = GetSystemType(); 
  32.         TotalPhysicalMemory = GetTotalPhysicalMemory(); 
  33.         ComputerName = GetComputerName(); 
  34.     } 
  35. /// <summary>
  36. /// 获取cpu序列号
  37. /// </summary>
  38. /// <returns></returns>
  39. private string GetCpuID() 
  40.     { 
  41. try
  42.         { 
  43. //获取CPU序列号代码
  44. string cpuInfo = "";//cpu序列号
  45.             ManagementClass mc = new ManagementClass("Win32_Processor"); 
  46.             ManagementObjectCollection moc = mc.GetInstances(); 
  47. foreach (ManagementObject mo in moc) 
  48.             { 
  49.                 cpuInfo = mo.Properties["ProcessorId"].Value.ToString(); 
  50.             } 
  51.             moc = null; 
  52.             mc = null; 
  53. return cpuInfo; 
  54.         } 
  55. catch
  56.         { 
  57. return "unknow"; 
  58.         } 
  59.     } 
  60. /// <summary>
  61. /// 获取网卡硬件地址
  62. /// </summary>
  63. /// <returns></returns>
  64. private string GetMacAddress() 
  65.     { 
  66. try
  67.         { 
  68. //获取网卡硬件地址
  69. string mac = ""; 
  70.             ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); 
  71.             ManagementObjectCollection moc = mc.GetInstances(); 
  72. foreach (ManagementObject mo in moc) 
  73.             { 
  74. if ((bool)mo["IPEnabled"] == true) 
  75.                 { 
  76.                     mac = mo["MacAddress"].ToString(); 
  77. break; 
  78.                 } 
  79.             } 
  80.             moc = null; 
  81.             mc = null; 
  82. return mac; 
  83.         } 
  84. catch
  85.         { 
  86. return "unknow"; 
  87.         } 
  88.     } 
  89. /// <summary>
  90. /// 获取IP地址
  91. /// </summary>
  92. /// <returns></returns>
  93. private string GetIPAddress() 
  94.     { 
  95. try
  96.         { 
  97. //获取IP地址
  98. string st = ""; 
  99.             ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); 
  100.             ManagementObjectCollection moc = mc.GetInstances(); 
  101. foreach (ManagementObject mo in moc) 
  102.             { 
  103. if ((bool)mo["IPEnabled"] == true) 
  104.                 { 
  105. //st=mo["IpAddress"].ToString();
  106.                     System.Array ar; 
  107.                     ar = (System.Array)(mo.Properties["IpAddress"].Value); 
  108.                     st = ar.GetValue(0).ToString(); 
  109. break; 
  110.                 } 
  111.             } 
  112.             moc = null; 
  113.             mc = null; 
  114. return st; 
  115.         } 
  116. catch
  117.         { 
  118. return "unknow"; 
  119.         } 
  120.     } 
  121. /// <summary>
  122. /// 获取主板序号
  123. /// </summary>
  124. /// <returns></returns>
  125. private string GetMotherBoardSerialNumber() 
  126.     { 
  127. try
  128.         { 
  129. //获取主板序号代码
  130. string motherbordInfo = "";//主板序列号
  131.             ManagementClass mc = new ManagementClass("WIN32_BaseBoard"); 
  132.             ManagementObjectCollection moc = mc.GetInstances(); 
  133. foreach (ManagementObject mo in moc) 
  134.             { 
  135.                 motherbordInfo = mo.Properties["SerialNumber"].Value.ToString(); 
  136.             } 
  137.             moc = null; 
  138.             mc = null; 
  139. return motherbordInfo; 
  140.         } 
  141. catch
  142.         { 
  143. return "unknow"; 
  144.         } 
  145.     } 
  146. /// <summary>
  147. /// 获取硬盘ID
  148. /// </summary>
  149. /// <returns></returns>
  150. private string GetDiskID() 
  151.     { 
  152. try
  153.         { 
  154. //获取硬盘ID
  155.             String HDid = ""; 
  156.             ManagementClass mc = new ManagementClass("Win32_DiskDrive"); 
  157.             ManagementObjectCollection moc = mc.GetInstances(); 
  158. foreach (ManagementObject mo in moc) 
  159.             { 
  160.                 HDid = (string)mo.Properties["Model"].Value; 
  161.             } 
  162.             moc = null; 
  163.             mc = null; 
  164. return HDid; 
  165.         } 
  166. catch
  167.         { 
  168. return "unknow"; 
  169.         } 
  170.     } 
  171. /// <summary>
  172. /// 操作系统的登录用户名
  173. /// </summary>
  174. /// <returns></returns>
  175. private string GetUserName() 
  176.     { 
  177. try
  178.         { 
  179. string st = ""; 
  180.             ManagementClass mc = new ManagementClass("Win32_ComputerSystem"); 
  181.             ManagementObjectCollection moc = mc.GetInstances(); 
  182. foreach (ManagementObject mo in moc) 
  183.             { 
  184.                 st = mo["UserName"].ToString(); 
  185.             } 
  186.             moc = null; 
  187.             mc = null; 
  188. return st; 
  189.         } 
  190. catch
  191.         { 
  192. return "unknow"; 
  193.         } 
  194.     } 
  195. /// <summary>
  196. /// PC类型
  197. /// </summary>
  198. /// <returns></returns>
  199. private string GetSystemType() 
  200.     { 
  201. try
  202.         { 
  203. string st = ""; 
  204.             ManagementClass mc = new ManagementClass("Win32_ComputerSystem"); 
  205.             ManagementObjectCollection moc = mc.GetInstances(); 
  206. foreach (ManagementObject mo in moc) 
  207.             { 
  208.                 st = mo["SystemType"].ToString(); 
  209.             } 
  210.             moc = null; 
  211.             mc = null; 
  212. return st; 
  213.         } 
  214. catch
  215.         { 
  216. return "unknow"; 
  217.         } 
  218.     } 
  219. /// <summary>
  220. /// 物理内存
  221. /// </summary>
  222. /// <returns></returns>
  223. private string GetTotalPhysicalMemory() 
  224.     { 
  225. try
  226.         { 
  227. string st = ""; 
  228.             ManagementClass mc = new ManagementClass("Win32_ComputerSystem"); 
  229.             ManagementObjectCollection moc = mc.GetInstances(); 
  230. foreach (ManagementObject mo in moc) 
  231.             { 
  232.                 st = mo["TotalPhysicalMemory"].ToString(); 
  233.             } 
  234.             moc = null; 
  235.             mc = null; 
  236. return st; 
  237.         } 
  238. catch
  239.         { 
  240. return "unknow"; 
  241.         } 
  242.     } 
  243. /// <summary>
  244. /// 电脑名称
  245. /// </summary>
  246. /// <returns></returns>
  247. private string GetComputerName() 
  248.     { 
  249. try
  250.         { 
  251. return System.Environment.GetEnvironmentVariable("ComputerName"); 
  252.         } 
  253. catch
  254.         { 
  255. return "unknow"; 
  256.         } 
  257.     } 
  258. }

给我留言

留言无头像?