您的位置:首页 > 编程语言 > C#

C# 获取机器的硬件信息(CPU ID序列号, 主板信息,硬盘序列号,系统信息)

2012-01-27 13:56 721 查看
在很多情况下,你可能都需要得到微机的硬件信息。比如:你想给你的软件加锁,不让别人随便访问。
最有效的办法是获取CPU的序列号,然后让你的软件只能运行在有这样的CPU序列号的机器上。众所周知,

CPU序列号是唯一的!因此,这样就可以为你的软件加锁了。

另外一个需要硬盘信息的例子是:硬盘有几个分区,每个分区各有多少剩余空间。当你正在做一个多媒体

应用程序的时候,你可能也需要获得有关声卡、显卡的硬件信息。

本应用程序另一个精彩的应用是:获取有关系统内存的信息,如内存地址,内存设备等等。

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

的这句话:

using System.Management;

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

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

上面代码的Key是一个将被对应正确的数据填入的值。例如,获取CPU的信息,就需要把Key值设成

Win32_Processor。所有Key可能的值,列举如下:

Win32_1394Controller

Win32_1394ControllerDevice

Win32_Account

Win32_AccountSID

Win32_ACE

Win32_ActionCheck

Win32_AllocatedResource

Win32_ApplicationCommandLine

Win32_ApplicationService

Win32_AssociatedBattery

Win32_AssociatedProcessorMemory

Win32_BaseBoard

Win32_BaseService

Win32_Battery

Win32_Binary

Win32_BindImageAction

Win32_BIOS

Win32_BootConfiguration

Win32_Bus

Win32_CacheMemory

Win32_CDROMDrive

Win32_CheckCheck

Win32_CIMLogicalDeviceCIMDataFile

Win32_ClassicCOMApplicationClasses

Win32_ClassicCOMClass

Win32_ClassicCOMClassSetting

Win32_ClassicCOMClassSettings

Win32_ClassInfoAction

Win32_ClientApplicationSetting

Win32_CodecFile

Win32_COMApplication

Win32_COMApplicationClasses

Win32_COMApplicationSettings

Win32_COMClass

Win32_ComClassAutoEmulator

Win32_ComClassEmulator

Win32_CommandLineAccess

Win32_ComponentCategory

Win32_ComputerSystem

Win32_ComputerSystemProcessor

Win32_ComputerSystemProduct

Win32_COMSetting

Win32_Condition

Win32_CreateFolderAction

Win32_CurrentProbe

Win32_DCOMApplication

Win32_DCOMApplicationAccessAllowedSetting

Win32_DCOMApplicationLaunchAllowedSetting

Win32_DCOMApplicationSetting

Win32_DependentService

Win32_Desktop

Win32_DesktopMonitor

Win32_DeviceBus

Win32_DeviceMemoryAddress

Win32_DeviceSettings

Win32_Directory

Win32_DirectorySpecification

Win32_DiskDrive

Win32_DiskDriveToDiskPartition

Win32_DiskPartition

Win32_DisplayConfiguration

Win32_DisplayControllerConfiguration

Win32_DMAChannel

Win32_DriverVXD

Win32_DuplicateFileAction

Win32_Environment

Win32_EnvironmentSpecification

Win32_ExtensionInfoAction

Win32_Fan

Win32_FileSpecification

Win32_FloppyController

Win32_FloppyDrive

Win32_FontInfoAction

Win32_Group

Win32_GroupUser

Win32_HeatPipe

Win32_IDEController

Win32_IDEControllerDevice

Win32_ImplementedCategory

Win32_InfraredDevice

Win32_IniFileSpecification

Win32_InstalledSoftwareElement

Win32_IRQResource

Win32_Keyboard

Win32_LaunchCondition

Win32_LoadOrderGroup

Win32_LoadOrderGroupServiceDependencies

Win32_LoadOrderGroupServiceMembers

Win32_LogicalDisk

Win32_LogicalDiskRootDirectory

Win32_LogicalDiskToPartition

Win32_LogicalFileAccess

Win32_LogicalFileAuditing

Win32_LogicalFileGroup

Win32_LogicalFileOwner

Win32_LogicalFileSecuritySetting

Win32_LogicalMemoryConfiguration

Win32_LogicalProgramGroup

Win32_LogicalProgramGroupDirectory

Win32_LogicalProgramGroupItem

Win32_LogicalProgramGroupItemDataFile

Win32_LogicalShareAccess

Win32_LogicalShareAuditing

Win32_LogicalShareSecuritySetting

Win32_ManagedSystemElementResource

Win32_MemoryArray

Win32_MemoryArrayLocation

Win32_MemoryDevice

Win32_MemoryDeviceArray

Win32_MemoryDeviceLocation

Win32_MethodParameterClass

Win32_MIMEInfoAction

Win32_MotherboardDevice

Win32_MoveFileAction

Win32_MSIResource

Win32_NetworkAdapter

Win32_NetworkAdapterConfiguration

Win32_NetworkAdapterSetting

Win32_NetworkClient

Win32_NetworkConnection

Win32_NetworkLoginProfile

Win32_NetworkProtocol

Win32_NTEventlogFile

Win32_NTLogEvent

Win32_NTLogEventComputer

Win32_NTLogEventLog

Win32_NTLogEventUser

Win32_ODBCAttribute

Win32_ODBCDataSourceAttribute

Win32_ODBCDataSourceSpecification

Win32_ODBCDriverAttribute

Win32_ODBCDriverSoftwareElement

Win32_ODBCDriverSpecification

Win32_ODBCSourceAttribute

Win32_ODBCTranslatorSpecification

Win32_OnBoardDevice

Win32_OperatingSystem

Win32_OperatingSystemQFE

Win32_OSRecoveryConfiguration

Win32_PageFile

Win32_PageFileElementSetting

Win32_PageFileSetting

Win32_PageFileUsage

Win32_ParallelPort

Win32_Patch

Win32_PatchFile

Win32_PatchPackage

Win32_PCMCIAController

Win32_Perf

Win32_PerfRawData

Win32_PerfRawData_ASP_ActiveServerPages

Win32_PerfRawData_ASPNET_114322_ASPNETAppsv114322

Win32_PerfRawData_ASPNET_114322_ASPNETv114322

Win32_PerfRawData_ASPNET_ASPNET

Win32_PerfRawData_ASPNET_ASPNETApplications

Win32_PerfRawData_IAS_IASAccountingClients

Win32_PerfRawData_IAS_IASAccountingServer

Win32_PerfRawData_IAS_IASAuthenticationClients

Win32_PerfRawData_IAS_IASAuthenticationServer

Win32_PerfRawData_InetInfo_InternetInformationServicesGlobal

Win32_PerfRawData_MSDTC_DistributedTransactionCoordinator

Win32_PerfRawData_MSFTPSVC_FTPService

Win32_PerfRawData_MSSQLSERVER_SQLServerAccessMethods

Win32_PerfRawData_MSSQLSERVER_SQLServerBackupDevice

Win32_PerfRawData_MSSQLSERVER_SQLServerBufferManager

Win32_PerfRawData_MSSQLSERVER_SQLServerBufferPartition

Win32_PerfRawData_MSSQLSERVER_SQLServerCacheManager

Win32_PerfRawData_MSSQLSERVER_SQLServerDatabases

Win32_PerfRawData_MSSQLSERVER_SQLServerGeneralStatistics

Win32_PerfRawData_MSSQLSERVER_SQLServerLatches

Win32_PerfRawData_MSSQLSERVER_SQLServerLocks

Win32_PerfRawData_MSSQLSERVER_SQLServerMemoryManager

Win32_PerfRawData_MSSQLSERVER_SQLServerReplicationAgents

Win32_PerfRawData_MSSQLSERVER_SQLServerReplicationDist

Win32_PerfRawData_MSSQLSERVER_SQLServerReplicationLogreader

Win32_PerfRawData_MSSQLSERVER_SQLServerReplicationMerge

Win32_PerfRawData_MSSQLSERVER_SQLServerReplicationSnapshot

Win32_PerfRawData_MSSQLSERVER_SQLServerSQLStatistics

Win32_PerfRawData_MSSQLSERVER_SQLServerUserSettable

Win32_PerfRawData_NETFramework_NETCLRExceptions

Win32_PerfRawData_NETFramework_NETCLRInterop

Win32_PerfRawData_NETFramework_NETCLRJit

Win32_PerfRawData_NETFramework_NETCLRLoading

Win32_PerfRawData_NETFramework_NETCLRLocksAndThreads

Win32_PerfRawData_NETFramework_NETCLRMemory

Win32_PerfRawData_NETFramework_NETCLRRemoting

Win32_PerfRawData_NETFramework_NETCLRSecurity

Win32_PerfRawData_Outlook_Outlook

Win32_PerfRawData_PerfDisk_PhysicalDisk

Win32_PerfRawData_PerfNet_Browser

Win32_PerfRawData_PerfNet_Redirector

Win32_PerfRawData_PerfNet_Server

Win32_PerfRawData_PerfNet_ServerWorkQueues

Win32_PerfRawData_PerfOS_Cache

Win32_PerfRawData_PerfOS_Memory

Win32_PerfRawData_PerfOS_Objects

Win32_PerfRawData_PerfOS_PagingFile

Win32_PerfRawData_PerfOS_Processor

Win32_PerfRawData_PerfOS_System

Win32_PerfRawData_PerfProc_FullImage_Costly

Win32_PerfRawData_PerfProc_Image_Costly

Win32_PerfRawData_PerfProc_JobObject

Win32_PerfRawData_PerfProc_JobObjectDetails

Win32_PerfRawData_PerfProc_Process

Win32_PerfRawData_PerfProc_ProcessAddressSpace_Costly

Win32_PerfRawData_PerfProc_Thread

Win32_PerfRawData_PerfProc_ThreadDetails_Costly

Win32_PerfRawData_RemoteAccess_RASPort

Win32_PerfRawData_RemoteAccess_RASTotal

Win32_PerfRawData_RSVP_ACSPerRSVPService

Win32_PerfRawData_Spooler_PrintQueue

Win32_PerfRawData_TapiSrv_Telephony

Win32_PerfRawData_Tcpip_ICMP

Win32_PerfRawData_Tcpip_IP

Win32_PerfRawData_Tcpip_NBTConnection

Win32_PerfRawData_Tcpip_NetworkInterface

Win32_PerfRawData_Tcpip_TCP

Win32_PerfRawData_Tcpip_UDP

Win32_PerfRawData_W3SVC_WebService

Win32_PhysicalMemory

Win32_PhysicalMemoryArray

Win32_PhysicalMemoryLocation

Win32_PNPAllocatedResource

Win32_PnPDevice

Win32_PnPEntity

Win32_PointingDevice

Win32_PortableBattery

Win32_PortConnector

Win32_PortResource

Win32_POTSModem

Win32_POTSModemToSerialPort

Win32_PowerManagementEvent

Win32_Printer

Win32_PrinterConfiguration

Win32_PrinterController

Win32_PrinterDriverDll

Win32_PrinterSetting

Win32_PrinterShare

Win32_PrintJob

Win32_PrivilegesStatus

Win32_Process

Win32_Processor

Win32_ProcessStartup

Win32_Product

Win32_ProductCheck

Win32_ProductResource

Win32_ProductSoftwareFeatures

Win32_ProgIDSpecification

Win32_ProgramGroup

Win32_ProgramGroupContents

Win32_ProgramGroupOrItem

Win32_Property

Win32_ProtocolBinding

Win32_PublishComponentAction

Win32_QuickFixEngineering

Win32_Refrigeration

Win32_Registry

Win32_RegistryAction

Win32_RemoveFileAction

Win32_RemoveIniAction

Win32_ReserveCost

Win32_ScheduledJob

Win32_SCSIController

Win32_SCSIControllerDevice

Win32_SecurityDescriptor

Win32_SecuritySetting

Win32_SecuritySettingAccess

Win32_SecuritySettingAuditing

Win32_SecuritySettingGroup

Win32_SecuritySettingOfLogicalFile

Win32_SecuritySettingOfLogicalShare

Win32_SecuritySettingOfObject

Win32_SecuritySettingOwner

Win32_SelfRegModuleAction

Win32_SerialPort

Win32_SerialPortConfiguration

Win32_SerialPortSetting

Win32_Service

Win32_ServiceControl

Win32_ServiceSpecification

Win32_ServiceSpecificationService

Win32_SettingCheck

Win32_Share

Win32_ShareToDirectory

Win32_ShortcutAction

Win32_ShortcutFile

Win32_ShortcutSAP

Win32_SID

Win32_SMBIOSMemory

Win32_SoftwareElement

Win32_SoftwareElementAction

Win32_SoftwareElementCheck

Win32_SoftwareElementCondition

Win32_SoftwareElementResource

Win32_SoftwareFeature

Win32_SoftwareFeatureAction

Win32_SoftwareFeatureCheck

Win32_SoftwareFeatureParent

Win32_SoftwareFeatureSoftwareElements

Win32_SoundDevice

Win32_StartupCommand

Win32_SubDirectory

Win32_SystemAccount

Win32_SystemBIOS

Win32_SystemBootConfiguration

Win32_SystemDesktop

Win32_SystemDevices

Win32_SystemDriver

Win32_SystemDriverPNPEntity

Win32_SystemEnclosure

Win32_SystemLoadOrderGroups

Win32_SystemLogicalMemoryConfiguration

Win32_SystemMemoryResource

Win32_SystemNetworkConnections

Win32_SystemOperatingSystem

Win32_SystemPartitions

Win32_SystemProcesses

Win32_SystemProgramGroups

Win32_SystemResources

Win32_SystemServices

Win32_SystemSetting

Win32_SystemSlot

Win32_SystemSystemDriver

Win32_SystemTimeZone

Win32_SystemUsers

Win32_TapeDrive

Win32_TemperatureProbe

Win32_Thread

Win32_TimeZone

Win32_Trustee

Win32_TypeLibraryAction

Win32_UninterruptiblePowerSupply

Win32_USBController

Win32_USBControllerDevice

Win32_UserAccount

Win32_UserDesktop

Win32_VideoConfiguration

Win32_VideoController

Win32_VideoSettings

Win32_VoltageProbe

Win32_WMIElementSetting

Win32_WMISetting

首先,调用ManagementObjectSearcher实例(在本文中的例子里为searcher )中的Get()方法,该方法将

会把返回信息填在这个实例中。然后,你所要做的就是处理这个实例searcher中的数据。

foreach (ManagementObject share in searcher.Get()){// Some Codes ...}

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

foreach (PropertyData PC in share.Properties){//some codes ...}

本文中代码的其它部分只是对于ListView控件的一些操作,很简单,就不再详述了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐