C#獲取CPU硬盤等信息_第1頁
C#獲取CPU硬盤等信息_第2頁
C#獲取CPU硬盤等信息_第3頁
C#獲取CPU硬盤等信息_第4頁
C#獲取CPU硬盤等信息_第5頁
免費預覽已結束,剩余2頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、在很多情況下,你可能都需要得到微機的硬件信息。比如:你想給你的軟件加鎖,不讓別人隨便訪問。首先,你必須知道這個應用程序的功能是使用System.Management這個類得到的。 因此,你需要加上下面的這句話:usingSystem.Management;為了獲取硬件信息,你還需要創(chuàng)建一個ManagementObjectSearcher對象 :ManagementObjectSearcher searcher =new ManagementObjectSearcher(select* from+ Key);/硬件Win32_Processor, / CPU 處理器Win32_PhysicalM

2、emory, /物理內存條Win32_Keyboard, /鍵盤Win32_PointingDevice, /點輸入設備,包括鼠標。Win32_FloppyDrive, / 軟盤驅動器Win32_DiskDrive, /硬盤驅動器Win32_CDROMDrive, / 光盤驅動器Win32_BaseBoard, /主板Win32_BIOS, / BIOS 芯片Win32_ParallelPort, /并口Win32_SerialPort, /串口Win32_SerialPortConfiguration, /串口配置Win32_SoundDevice, / 多媒體設置,一般指聲卡。Win32_

3、SystemSlot, /主板插槽 (ISA & PCI &AGP)Win32_USBController, / USB 控制器Win32_NetworkAdapter, /網絡適配器Win32_NetworkAdapterConfiguration, /網絡適配器設置Win32_Printer, /打印機Win32_PrinterConfiguration, /打印機設置Win32_PrintJob, /打印機任務Win32_TCPIPPrinterPort, /打印機端口Win32_POTSModem, / MODEMWin32_POTSModemToSerialPort,

4、 / MODEM 端口Win32_DesktopMonitor, /顯示器Win32_DisplayConfiguration, /顯卡Win32_DisplayControllerConfiguration, /顯卡設置Win32_VideoController, /顯卡細節(jié)。Win32_VideoSettings, /顯卡支持的顯示模式。操作系統(tǒng)Win32_TimeZone, /時區(qū)Win32_SystemDriver, /驅動程序Win32_DiskPartition, /磁盤分區(qū)Win32_LogicalDisk, /邏輯磁盤Win32_LogicalDiskToPartition,

5、/邏輯磁盤所在分區(qū)及始末位置。Win32_LogicalMemoryConfiguration, /邏輯內存配置Win32_PageFile, / 系統(tǒng)頁文件信息Win32_PageFileSetting, / 頁文件設置Win32_BootConfiguration, /系統(tǒng)啟動配置Win32_ComputerSystem, /計算機信息簡要Win32_OperatingSystem, /操作系統(tǒng)信息Win32_StartupCommand, /系統(tǒng)自動啟動程序Win32_Service, /系統(tǒng)安裝的服務Win32_Group, /系統(tǒng)管理組Win32_GroupUser, /系統(tǒng)組帳號W

6、in32_UserAccount, /用戶帳號Win32_Process, / 系統(tǒng)進程Win32_Thread, /系統(tǒng)線程Win32_Share, /共享Win32_NetworkClient, /已安裝的網絡客戶端Win32_NetworkProtocol, /已安裝的網絡協(xié)議上面代碼的Key 是一個將被對應正確的數(shù)據(jù)填入的值。例如,獲取CPU的信息,就需要把Key 值設成Win32_Processor.首先,調用 ManagementObjectSearcher實例(在本文中的例子里為searcher )中的 Get() 方法,該方法將會把返回信息填在這個實例中。然后,你所要做的就是處

7、理這個實例searcher中的數(shù)據(jù)。foreach(ManagementObject share insearcher.Get()/ SomeCodes .每個 ManagementObject 的對象中都有一些,我們所需要的數(shù)據(jù),當然我們可以接著這么處理這些數(shù)據(jù):foreach(PropertyData PC inshare.Properties) /some codes .類似地,有:顯卡 : Win32_VideoController , PNPDeviceID聲卡 : Win32_SoundDevice ,PNPDeviceIDCPU: Win32_Processor- 版本信息Ver

8、sion, 名稱信息Name, 制造廠商Manufacturer主板 : Win32_BaseBoar-型號 Produc, 編號SerialNumber, 制造廠商ManufacturerWQL 查詢語句:網卡原生 MAC 地址SELECT * FROM Win32_NetworkAdapter WHERE (MACAddress IS NOT NULL) AND (NOT(PNPDeviceID LIKE ROOT%),硬盤序列號SELECT * FROM Win32_DiskDrive WHERE (SerialNumber IS NOT NULL) AND(MediaType LIKE

9、 Fixed hard disk%),LSerialNumber,主板序列號SELECT * FROM Win32_BaseBoard WHERE (SerialNumber IS NOT NULL),LSerialNumber,處理器 IDSELECT * FROM Win32_Processor WHERE (ProcessorId IS NOT NULL),LProcessorId,/ BIOS 序列號SELECT * FROM Win32_BIOS WHERE (SerialNumber IS NOT NULL),LSerialNumber,主板型號SELECT * FROM Win3

10、2_BaseBoard WHERE (Product IS NOT NULL),LProduct,網卡當前 MAC 地址SELECT * FROM Win32_NetworkAdapter WHERE (MACAddress IS NOT NULL) AND (NOT(PNPDeviceID LIKE ROOT%),LMACAddress,實現(xiàn)代碼:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Management;namespace FormProd

11、uctCalculatorpublicclassComputerInformation/取得設備硬盤的卷標號/publicstringGetDiskVolumeSerialNumber()ManagementClass mc =newManagementClass( Win32_NetworkAdapterConfigurationManagementObject disk =newManagementObject( win32_logicaldisk.deviceid=c:disk.Get();returndisk.GetPropertyValue(VolumeSerialNumber).T

12、oString();););/獲得 CPU 的序列號/publicstringgetCpu()stringstrCpu =null ;ManagementClass myCpu = newManagementClass( win32_Processor );ManagementObjectCollection myCpuConnection = myCpu.GetInstances();foreach ( ManagementObject myObject in myCpuConnection)strCpu = myObject.PropertiesProcessorid.Value.ToSt

13、ring();break ;returnstrCpu;/獲取網卡硬件地址/publicstringGetMacAddress()stringmac = ;ManagementClass mc =newManagementClass( Win32_NetworkAdapterConfigurationManagementObjectCollectionmoc = mc.GetInstances();foreach( ManagementObject mo in moc)if( bool )mo IPEnabled =true );mac = moMacAddress .ToString();br

14、eak ;returnmac;/獲取 IP 地址/publicstringGetIPAddress()stringst = ;ManagementClass mc =newManagementClass( Win32_NetworkAdapterConfigurationManagementObjectCollectionmoc = mc.GetInstances();foreach( ManagementObject mo in moc)if( bool )mo IPEnabled =true )/st=moIpAddress.ToString();System.Array ar;ar =

15、(System.Array )(mo.PropertiesIpAddress.Value););st = ar.GetValue(0).ToString();break ;returnst;/操作系統(tǒng)的登錄用戶名/publicstringGetUserName()return Environment .UserName;/獲取計算機名/publicstringGetComputerName()return Environment .MachineName;/操作系統(tǒng)類型/publicstringGetSystemType()stringst = ;ManagementClass mc =new

16、ManagementClass( Win32_ComputerSystem );ManagementObjectCollectionmoc = mc.GetInstances();foreach( ManagementObject mo in moc)st = moSystemType .ToString();returnst;/物理內存/publicstringGetPhysicalMemory()stringst = ;ManagementClass mc =newManagementClass( Win32_ComputerSystem );ManagementObjectCollect

17、ionmoc = mc.GetInstances();foreach( ManagementObject mo in moc)st = moTotalPhysicalMemory.ToString();returnst;/生成機器碼/publicstringgetMNum()stringstrNum = getCpu() + GetDiskVolumeSerialNumber();/ 獲得 24 位 Cpu 和硬盤序列號stringstrMNum = strNum.Substring(0, 24);/ 從生成的字符串中取出前24 個字符做為機器碼returnstrMNum;publicint

18、intCode =newint 127;/ 存儲密鑰publicint intNumber =newint 25;/ 存機器碼的 Ascii 值publicchar Charcode =newchar 25; / 存儲機器碼字publicvoidsetIntCode()/ 給數(shù)組賦值小于10 的數(shù)for ( inti = 1; i intCode.Length; i+)intCodei = i % 9;/生成注冊碼/publicstringgetRNum()setIntCode();/ 初始化 127 位數(shù)組stringMNum = this .getMNum(); / 獲取注冊碼for ( inti = 1; i Charcode.Length; i+)/ 把機器碼存入數(shù)組中Charcodei =Convert .ToChar(MNum.Substring(i - 1, 1);for ( intj = 1; j intNumber.Length; j+)/ 把字符的 ASCII 值存入一個整數(shù)組中。intNumberj = intCodeConvert .ToInt32(Charcodej) +Convert .ToInt32(Ch

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論