c# 获取电脑硬件信息通用查询类[测试通过]

古城微笑少年丶 2024-02-18 19:54 106阅读 0赞

C#获取电脑硬件信息通用类[Computer]代码展示和分析,简介如下:

1.项目中添加System.Management引用。

2.添加类Computer,把下面代码全选,复制,粘贴。

3.使用方法new Computer().GetComputerName()。

ContractedBlock.gif ExpandedBlockStart.gif 代码

  1. using
  2. System;
  3. using
  4. System.Management;
  5. //
  6. 添加System.Management引用
  7. public
  8. class
  9. Computer
  10. {
  11. public
  12. string
  13. CpuID;
  14. public
  15. string
  16. MacAddress;
  17. public
  18. string
  19. DiskID;
  20. public
  21. string
  22. IpAddress;
  23. public
  24. string
  25. LoginUserName;
  26. public
  27. string
  28. ComputerName;
  29. public
  30. string
  31. SystemType;
  32. public
  33. string
  34. TotalPhysicalMemory;
  35. //
  36. 单位:M
  37. private
  38. static
  39. Computer _instance;
  40. public
  41. static
  42. Computer Instance()
  43. {
  44. if
  45. (_instance
  46. ==
  47. null
  48. )
  49. _instance
  50. =
  51. new
  52. Computer();
  53. return
  54. _instance;
  55. }
  56. ///
  57. <summary>
  58. ///
  59. 构造函数
  60. ///
  61. </summary>
  62. public
  63. Computer()
  64. {
  65. CpuID
  66. =
  67. GetCpuID();
  68. MacAddress
  69. =
  70. GetMacAddress();
  71. DiskID
  72. =
  73. GetDiskID();
  74. IpAddress
  75. =
  76. GetIPAddress();
  77. LoginUserName
  78. =
  79. GetUserName();
  80. SystemType
  81. =
  82. GetSystemType();
  83. TotalPhysicalMemory
  84. =
  85. GetTotalPhysicalMemory();
  86. ComputerName
  87. =
  88. GetComputerName();
  89. }
  90. ///
  91. <summary>
  92. ///
  93. 获取cpu序列号
  94. ///
  95. </summary>
  96. ///
  97. <returns></returns>
  98. public
  99. string
  100. GetCpuID()
  101. {
  102. try
  103. {
  104. //
  105. 获取CPU序列号代码
  106. string
  107. cpuInfo
  108. =
  109. ""
  110. ;
  111. //
  112. cpu序列号
  113. ManagementClass mc
  114. =
  115. new
  116. ManagementClass(
  117. "
  118. Win32_Processor
  119. "
  120. );
  121. ManagementObjectCollection moc
  122. =
  123. mc.GetInstances();
  124. foreach
  125. (ManagementObject mo
  126. in
  127. moc)
  128. {
  129. cpuInfo
  130. =
  131. mo.Properties[
  132. "
  133. ProcessorId
  134. "
  135. ].Value.ToString();
  136. }
  137. moc
  138. =
  139. null
  140. ;
  141. mc
  142. =
  143. null
  144. ;
  145. return
  146. cpuInfo;
  147. }
  148. catch
  149. {
  150. return
  151. "
  152. unknow
  153. "
  154. ;
  155. }
  156. }
  157. ///
  158. <summary>
  159. ///
  160. 获取网卡硬件地址
  161. ///
  162. </summary>
  163. ///
  164. <returns></returns>
  165. public
  166. string
  167. GetMacAddress()
  168. {
  169. try
  170. {
  171. //
  172. 获取网卡硬件地址
  173. string
  174. mac
  175. =
  176. ""
  177. ;
  178. ManagementClass mc
  179. =
  180. new
  181. ManagementClass(
  182. "
  183. Win32_NetworkAdapterConfiguration
  184. "
  185. );
  186. ManagementObjectCollection moc
  187. =
  188. mc.GetInstances();
  189. foreach
  190. (ManagementObject mo
  191. in
  192. moc)
  193. {
  194. if
  195. ((
  196. bool
  197. )mo[
  198. "
  199. IPEnabled
  200. "
  201. ]
  202. ==
  203. true
  204. )
  205. {
  206. mac
  207. =
  208. mo[
  209. "
  210. MacAddress
  211. "
  212. ].ToString();
  213. break
  214. ;
  215. }
  216. }
  217. moc
  218. =
  219. null
  220. ;
  221. mc
  222. =
  223. null
  224. ;
  225. return
  226. mac;
  227. }
  228. catch
  229. {
  230. return
  231. "
  232. unknow
  233. "
  234. ;
  235. }
  236. }
  237. ///
  238. <summary>
  239. ///
  240. 获取IP地址
  241. ///
  242. </summary>
  243. ///
  244. <returns></returns>
  245. public
  246. string
  247. GetIPAddress()
  248. {
  249. try
  250. {
  251. //
  252. 获取IP地址
  253. string
  254. st
  255. =
  256. ""
  257. ;
  258. ManagementClass mc
  259. =
  260. new
  261. ManagementClass(
  262. "
  263. Win32_NetworkAdapterConfiguration
  264. "
  265. );
  266. ManagementObjectCollection moc
  267. =
  268. mc.GetInstances();
  269. foreach
  270. (ManagementObject mo
  271. in
  272. moc)
  273. {
  274. if
  275. ((
  276. bool
  277. )mo[
  278. "
  279. IPEnabled
  280. "
  281. ]
  282. ==
  283. true
  284. )
  285. {
  286. //
  287. st=mo["IpAddress"].ToString();
  288. System.Array ar;
  289. ar
  290. =
  291. (System.Array)(mo.Properties[
  292. "
  293. IpAddress
  294. "
  295. ].Value);
  296. st
  297. =
  298. ar.GetValue(
  299. 0
  300. ).ToString();
  301. break
  302. ;
  303. }
  304. }
  305. moc
  306. =
  307. null
  308. ;
  309. mc
  310. =
  311. null
  312. ;
  313. return
  314. st;
  315. }
  316. catch
  317. {
  318. return
  319. "
  320. unknow
  321. "
  322. ;
  323. }
  324. }
  325. ///
  326. <summary>
  327. ///
  328. 获取硬盘ID
  329. ///
  330. </summary>
  331. ///
  332. <returns></returns>
  333. public
  334. string
  335. GetDiskID()
  336. {
  337. try
  338. {
  339. //
  340. 获取硬盘ID
  341. String HDid
  342. =
  343. ""
  344. ;
  345. ManagementClass mc
  346. =
  347. new
  348. ManagementClass(
  349. "
  350. Win32_DiskDrive
  351. "
  352. );
  353. ManagementObjectCollection moc
  354. =
  355. mc.GetInstances();
  356. foreach
  357. (ManagementObject mo
  358. in
  359. moc)
  360. {
  361. HDid
  362. =
  363. (
  364. string
  365. )mo.Properties[
  366. "
  367. Model
  368. "
  369. ].Value;
  370. }
  371. moc
  372. =
  373. null
  374. ;
  375. mc
  376. =
  377. null
  378. ;
  379. return
  380. HDid;
  381. }
  382. catch
  383. {
  384. return
  385. "
  386. unknow
  387. "
  388. ;
  389. }
  390. }
  391. ///
  392. <summary>
  393. ///
  394. 操作系统的登录用户名
  395. ///
  396. </summary>
  397. ///
  398. <returns></returns>
  399. public
  400. string
  401. GetUserName()
  402. {
  403. try
  404. {
  405. string
  406. st
  407. =
  408. ""
  409. ;
  410. ManagementClass mc
  411. =
  412. new
  413. ManagementClass(
  414. "
  415. Win32_ComputerSystem
  416. "
  417. );
  418. ManagementObjectCollection moc
  419. =
  420. mc.GetInstances();
  421. foreach
  422. (ManagementObject mo
  423. in
  424. moc)
  425. {
  426. st
  427. =
  428. mo[
  429. "
  430. UserName
  431. "
  432. ].ToString();
  433. }
  434. moc
  435. =
  436. null
  437. ;
  438. mc
  439. =
  440. null
  441. ;
  442. return
  443. st;
  444. }
  445. catch
  446. {
  447. return
  448. "
  449. unknow
  450. "
  451. ;
  452. }
  453. }
  454. ///
  455. <summary>
  456. ///
  457. PC类型
  458. ///
  459. </summary>
  460. ///
  461. <returns></returns>
  462. public
  463. string
  464. GetSystemType()
  465. {
  466. try
  467. {
  468. string
  469. st
  470. =
  471. ""
  472. ;
  473. ManagementClass mc
  474. =
  475. new
  476. ManagementClass(
  477. "
  478. Win32_ComputerSystem
  479. "
  480. );
  481. ManagementObjectCollection moc
  482. =
  483. mc.GetInstances();
  484. foreach
  485. (ManagementObject mo
  486. in
  487. moc)
  488. {
  489. st
  490. =
  491. mo[
  492. "
  493. SystemType
  494. "
  495. ].ToString();
  496. }
  497. moc
  498. =
  499. null
  500. ;
  501. mc
  502. =
  503. null
  504. ;
  505. return
  506. st;
  507. }
  508. catch
  509. {
  510. return
  511. "
  512. unknow
  513. "
  514. ;
  515. }
  516. }
  517. ///
  518. <summary>
  519. ///
  520. 物理内存
  521. ///
  522. </summary>
  523. ///
  524. <returns></returns>
  525. public
  526. string
  527. GetTotalPhysicalMemory()
  528. {
  529. try
  530. {
  531. string
  532. st
  533. =
  534. ""
  535. ;
  536. ManagementClass mc
  537. =
  538. new
  539. ManagementClass(
  540. "
  541. Win32_ComputerSystem
  542. "
  543. );
  544. ManagementObjectCollection moc
  545. =
  546. mc.GetInstances();
  547. foreach
  548. (ManagementObject mo
  549. in
  550. moc)
  551. {
  552. st
  553. =
  554. mo[
  555. "
  556. TotalPhysicalMemory
  557. "
  558. ].ToString();
  559. }
  560. moc
  561. =
  562. null
  563. ;
  564. mc
  565. =
  566. null
  567. ;
  568. return
  569. st;
  570. }
  571. catch
  572. {
  573. return
  574. "
  575. unknow
  576. "
  577. ;
  578. }
  579. }
  580. ///
  581. <summary>
  582. ///
  583. 电脑名称
  584. ///
  585. </summary>
  586. ///
  587. <returns></returns>
  588. public
  589. string
  590. GetComputerName()
  591. {
  592. try
  593. {
  594. return
  595. System.Environment.GetEnvironmentVariable(
  596. "
  597. ComputerName
  598. "
  599. );
  600. }
  601. catch
  602. {
  603. return
  604. "
  605. unknow
  606. "
  607. ;
  608. }
  609. }
  610. }

发表评论

表情:
评论列表 (有 0 条评论,106人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C# 操作线程的通用[测试通过]

    进程管理就是对服务器性能的管理和协调,在程序的运行角度来看非常重要,也可以根据操作进程的手段,衍生很多实用和智能的功能,以下就是介绍一个自己写的进程通用操作类,功能如下: 1

    相关 技巧 获取电脑硬件信息 -转发

    概述 分享一个一键检测硬件命令。当你拿到一个新电脑时,不需要再去控制面板、设备管理器、电脑属性去一个一个查看了,只需要复制下这里脚本内容,一键执行就可以了解到硬件的所有信息