为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

vb获取cpuid 硬盘物理序列号和逻辑盘序列号 的方法

2017-09-17 11页 doc 34KB 131阅读

用户头像

is_562397

暂无简介

举报
vb获取cpuid 硬盘物理序列号和逻辑盘序列号 的方法vb获取cpuid 硬盘物理序列号和逻辑盘序列号 的方法 Ò???Ê?ÓÃWMI?ñÈ? Í??ýWMI?ñµÃÓ?Å̺ÍCPUµÄÎïÀíÐòÁкÅ??VB.net?? ''?ñµÃÓ?ÅÌÐòÁкŠDim cmicWmi As New System.Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive") Dim Uint32 As UInt32 For Each cmicWmiObj As ManagementObjec...
vb获取cpuid 硬盘物理序列号和逻辑盘序列号 的方法
vb获取cpuid 硬盘物理序列号和逻辑盘序列号 的方法 Ò???Ê?ÓÃWMI?ñÈ? Í??ýWMI?ñµÃÓ?Å̺ÍCPUµÄÎïÀíÐòÁкÅ??VB.net?? ''?ñµÃÓ?ÅÌÐòÁкŠDim cmicWmi As New System.Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive") Dim Uint32 As UInt32 For Each cmicWmiObj As ManagementObject In cmicWmi.Get Uint32 = cmicWmiObj("signature") Next TextBox1.Text = Uint32.ToString ''?ñµÃCPUÐòÁкŠDim Wmi As New System.Management.ManagementObjectSearcher("SELECT * FROM Win32_Processor") Dim Uint32 As String For Each WmiObj As ManagementObject In Wmi.Get Uint32 = WmiObj("ProcessorId") Next TextBox1.Text = Uint32 ''?ñµÃÓ?ÅÌ×ÜÈÝÁ? Dim Wmi As New System.Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive") Dim Uint64 As UInt64 For Each WmiObj As ManagementObject In Wmi.Get Uint64 = WmiObj("size") Next TextBox1.Text = Uint64.ToString Ê×ÏÈ??ÒýÓÃSystem.Management??È?ºóÔÚ?úÂëÖÐImports System.Management?? private void GetInfo() { string cpuInfo = "";//cpuÐòÁкŠManagementClass cimobject = new ManagementClass("Win32_Processor"); ManagementObjectCollection moc = cimobject.GetInstances(); foreach(ManagementObject mo in moc) { cpuInfo = mo.Properties["ProcessorId"].Value.ToString(); Response.Write ("cpuÐòÁкÅ?º"+cpuInfo.ToString ()); } //?ñÈ?Ó?ÅÌID String HDid; ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive"); ManagementObjectCollection moc1 = cimobject1.GetInstances(); foreach(ManagementObject mo in moc1) { HDid = (string)mo.Properties["Model"].Value; Response.Write ("Ó?ÅÌÐòÁкÅ?º"+HDid.ToString ()); } //?ñÈ?Íø??Ó??þµØÖ? 9558821702001755616 ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc2 = mc.GetInstances(); foreach(ManagementObject mo in moc2) { if((bool)mo["IPEnabled"] == true) Response.Write("MAC address\t{0}"+mo["MacAddress"].ToString()); mo.Dispose(); } } ?þ???ñÈ?ÎïÀíÓ?Å̵Äid Private Const MAX_IDE_DRIVES As Long = 4 Private Const IDENTIFY_BUFFER_SIZE As Long = 512 Private Const DFP_SEND_DRIVE_COMMAND As Long = &H7C084 Private Const DFP_RECEIVE_DRIVE_DATA As Long = &H7C088 Private Type GETVERSIONOUTPARAMS bVersion As Byte ' Binary driver version. bRevision As Byte ' Binary driver revision. bReserved As Byte ' Not used. bIDEDeviceMap As Byte ' Bit map of IDE devices. fCapabilities As Long ' Bit mask of driver capabilities. dwReserved(3) As Long ' For future use. End Type Private Type IDEREGS bFeaturesReg As Byte ' Used for specifying SMART "commands". bSectorCountReg As Byte ' IDE sector count register bSectorNumberReg As Byte ' IDE sector number register bCylLowReg As Byte ' IDE low order cylinder value bCylHighReg As Byte ' IDE high order cylinder value bDriveHeadReg As Byte ' IDE drive/head register bCommandReg As Byte ' Actual IDE command. End Type Private Type SENDCMDINPARAMS cBufferSize As Long ' Buffer size in bytes irDriveRegs As IDEREGS ' Structure with drive register values. bDriveNumber As Byte ' Physical drive number to send bReserved(2) As Byte ' Reserved for future expansion. dwReserved(3) As Long ' For future use. bBuffer(0) As Byte ' Input buffer. End Type Private Const IDE_ATAPI_ID As Long = &HA1 ' Returns ID sector for ATAPI. Private Const IDE_ID_FUNCTION As Long = &HEC ' Returns ID sector for ATA. Private Const IDE_EXECUTE_SMART_FUNCTION As Long = &HB0 ' Performs SMART cmd. Private Type DRIVERSTATUS bReserved(1) As Byte ' Reserved for future expansion. dwReserved(1) As Long ' Reserved for future expansion. End Type Private Type SENDCMDOUTPARAMS cBufferSize As Long ' Size of bBuffer in bytes drvStatus As DRIVERSTATUS ' Driver status structure. bBuffer(0) As Byte ' Buffer of arbitrary length in which to store the data read from the ' drive. End Type Private Type ATTRTHRESHOLD bAttrID As Byte ' Identifies which attribute bWarrantyThreshold As Byte ' Triggering value bReserved(9) As Byte ' End Type Private Type IDSECTOR wGenConfig As Integer wNumCyls As Integer wReserved As Integer wNumHeads As Integer wBytesPerTrack As Integer wBytesPerSector As Integer wSectorsPerTrack As Integer wVendorUnique(2) As Integer sSerialNumber(19) As Byte wBufferType As Integer sFirmwareRev(7) As Byte sModelNumber(39) As Byte End Type Private Const VER_PLATFORM_WIN32s As Long = 0 Private Const VER_PLATFORM_WIN32_WINDOWS As Long = 1 Private Const VER_PLATFORM_WIN32_NT As Long = 2 Private Type OSVERSIONINFO dwOSVersionInfoSize As Long dwMajorVersion As Long dwMinorVersion As Long dwBuildNumber As Long dwPlatformId As Long szCSDVersion As String * 128 ' Maintenance string for PSS usage End Type Private Declare Function GetVersionEx Lib "KERNEL32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long Private Const GENERIC_READ As Long = &H80000000 Private Const GENERIC_WRITE As Long = &H40000000 Private Const OPEN_EXISTING As Long = 3 Private Declare Function CreateFile Lib "KERNEL32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long Private Declare Function DeviceIoControl Lib "KERNEL32" (ByVal hDevice As Long, ByVal dwIoControlCode As Long, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesReturned As Long, ByVal lpOverlapped As Long) As Long Private Declare Sub CopyMemory Lib "KERNEL32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long) Private Declare Function CloseHandle Lib "KERNEL32" (ByVal hObject As Long) As Long Private m_DiskInfo As IDSECTOR Private Function OpenSMART(ByVal nDrive As Byte) As Long Dim hSMARTIOCTL&, hd$ Dim VersionInfo As OSVERSIONINFO VersionInfo.dwOSVersionInfoSize = Len(VersionInfo) GetVersionEx VersionInfo Select Case VersionInfo.dwPlatformId Case VER_PLATFORM_WIN32s OpenSMART = hSMARTIOCTL Case VER_PLATFORM_WIN32_WINDOWS hSMARTIOCTL = CreateFile("\\.\SMARTVSD", 0, 0, 0, CREATE_NEW, 0, 0) Case VER_PLATFORM_WIN32_NT If nDrive < MAX_IDE_DRIVES Then hd = "\\.\PhysicalDrive" & nDrive hSMARTIOCTL = CreateFile(hd, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0) End If End Select OpenSMART = hSMARTIOCTL End Function Private Function DoIDENTIFY(ByVal hSMARTIOCTL As Long, pSCIP As SENDCMDINPARAMS, pSCOP() As Byte, ByVal bIDCmd As Byte, ByVal bDriveNum As Byte, lpcbBytesReturned As Long) As Boolean pSCIP.irDriveRegs.bDriveHeadReg = &HA0 Or ((bDriveNum And 1) * 2 ^ 4) pSCIP.irDriveRegs.bCommandReg = bIDCmd pSCIP.bDriveNumber = bDriveNum DoIDENTIFY = CBool(DeviceIoControl(hSMARTIOCTL, DFP_RECEIVE_DRIVE_DATA, pSCIP, 32, pSCOP(0), 528, lpcbBytesReturned, 0)) End Function Public Function GetDiskInfo(ByVal nDrive As Byte) As Long Dim hSMARTIOCTL&, cbBytesReturned& Dim VersionParams As GETVERSIONOUTPARAMS Dim scip As SENDCMDINPARAMS Dim scop() As Byte Dim OutCmd As SENDCMDOUTPARAMS Dim bDfpDriveMap As Byte Dim bIDCmd As Byte ' IDE or ATAPI IDENTIFY cmd Dim uDisk As IDSECTOR m_DiskInfo = uDisk hSMARTIOCTL = OpenSMART(nDrive) If hSMARTIOCTL <> INVALID_HANDLE_VALUE Then Call DeviceIoControl(hSMARTIOCTL, DFP_GET_VERSION, ByVal 0, 0, VersionParams, Len(VersionParams), cbBytesReturned, 0) bIDCmd = IIf((VersionParams.bIDEDeviceMap \ 2 ^ nDrive And &H10), IDE_ATAPI_ID, IDE_ID_FUNCTION) ReDim scop(LenB(OutCmd) + IDENTIFY_BUFFER_SIZE - 1) As Byte If DoIDENTIFY(hSMARTIOCTL, scip, scop, bIDCmd, nDrive, cbBytesReturned) Then CopyMemory m_DiskInfo, scop(LenB(OutCmd) - 4), LenB(m_DiskInfo) CloseHandle hSMARTIOCTL GetDiskInfo = 1 Exit Function End If CloseHandle hSMARTIOCTL GetDiskInfo = 0 End If End Function Public Function GetHDlist() As String If GetDiskInfo(0) = 1 Then GetHDlist = "Ó?ÅÌÎïÀíϵÁкÅ:" & Trim(StrConv(m_DiskInfo.sSerialNumber, vbUnicode)) 'GetHDlist = "Ó?ÅÌÐͺÅ:" & StrConv(m_DiskInfo.sModelNumber, vbUnicode) Else GetHDlist = "?ÁÈ??íÎó" End If End Function Private Sub Command1_Click() MsgBox GetHDlist() End Sub Âß?,ÅÌÐòÁкÅ?º Private Declare Function GetVolumeInformation& Lib "KERNEL32" _ Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, _ ByVal pVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, _ lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, _ lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, _ ByVal nFileSystemNameSize As Long) Private Const MAX_FILENAME_LEN = 256 Public Function DriveSerial(ByVal sDrv As String) As Long Dim RetVal As Long Dim str As String * MAX_FILENAME_LEN Dim str2 As String * MAX_FILENAME_LEN Dim a As Long Dim b As Long GetVolumeInformation sDrv & ":\", str, MAX_FILENAME_LEN, RetVal, _ a, b, str2, MAX_FILENAME_LEN DriveSerial = RetVal End Function Private Sub Command1_Click() Dim mCode As Long mCode = DriveSerial("C") machine.Text = "c:" & mCode & " " machine.Text = machine.Text & "d:" & DriveSerial("D") End Sub
/
本文档为【vb获取cpuid 硬盘物理序列号和逻辑盘序列号 的方法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索