用户登录
用户注册

分享至

win7vs2005读取硬盘序列号 WIN7系统如何查硬盘编号

  • 作者: 段界撸神
  • 来源: 51数据库
  • 2020-04-21

答:详细方法如下:

1,点击开始,在搜索中输入cmd,回车,打开命令窗口

2,在命令行输入diskpart,启动diskpart程序,就是要利用这个程序来查看磁盘ID,该程序属于系统程序的一部分,大多数电脑都有的;

3,启动了diskpart程序后,接着输入list disk,也就是把电脑上的所有磁盘都罗列出来,因为电脑上只有一个磁盘,因此就出现了磁盘0;

4,接着输入select disk 0 ,也就是选择刚刚罗列出来的磁盘序号

5,选好要查看的磁盘后,接着输入detail disk,硬盘的信息将会全部展现出来,其中有一项就是磁盘ID,到此任务完成;

6,然后你可以输入exit退出diskpart程序,或者直接关掉窗口就ok了。

win7系统下如何查看硬盘序列号?

使用diskpart命令

Win+R键运行cmd,进入命令行界面:

  1. diskpart

  2. list disk 查看有几块硬盘

  3. select disk 0 选择第一块硬盘

  4. detail disk 显示选择的硬盘详细信息

    显示的第一行是硬盘型号,第二行ID是序列号。

  5. 若有多块硬盘,返回第3步继续下面操作。

vb2005 读取硬盘序列号和cpu序列号 请写出具体代码 ~

  先引用System.Management.dll

  Imports System

  Imports System.Management

  Public Class Form1

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

  TextBox1.Text = GetHardDriveID()

  End Sub

  Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

  TextBox2.Text = GetCUPID()

  End Sub

  Private Function GetHardDriveID() As String

  Try

  GetHardDriveID = ""

  Dim info As ManagementBaseObject

  Dim query As New SelectQuery("Win32_DiskDrive")

  Dim search As New ManagementObjectSearcher(query)

  For Each info In search.Get()

  If info("Model") IsNot Nothing Then

  Return info("Model").ToString

  Else

  Return ""

  End If

  Next

  Catch ex As Exception

  Return ""

  End Try

  End Function

  Private Function GetCUPID() As String

  Try

  GetCUPID = ""

  Dim info As ManagementBaseObject

  Dim query As New SelectQuery("Win32_Processor")

  Dim search As New ManagementObjectSearcher(query)

  For Each info In search.Get

  If info("ProcessorId") IsNot Nothing Then

  Return info("ProcessorId").ToString

  Else

  Return ""

  End If

  Next

  Catch ex As Exception

  Return ""

  End Try

  End Function

  End Class

请问怎样引用System.Management.dll 这个 麻烦您了

并ManagementBaseObject

和SelectQuery ManagementObjectSearcher 都是未定义的类型,应该怎么处理?

我的是繁体版的,描述不同,但词义相同,你根据词义找到 专案----加入参考-------.Net 里找到

System.Management--------确定即可。如果是简体版的应该是‘引用’,你找一下。

windows7 delphi 获取硬盘序列号.物理序列号

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Button1: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

end;

//获得硬盘序列号

function GetIdeSerialNumber: pchar;

const IDENTIFY_BUFFER_SIZE = 512;

type

TIDERegs = packed record

bFeaturesReg: BYTE; // Used for specifying SMART "commands".

bSectorCountReg: BYTE; // IDE sector count register

bSectorNumberReg: BYTE; // IDE sector number register

bCylLowReg: BYTE; // IDE low order cylinder value

bCylHighReg: BYTE; // IDE high order cylinder value

bDriveHeadReg: BYTE; // IDE drive/head register

bCommandReg: BYTE; // Actual IDE command.

bReserved: BYTE; // reserved for future use. Must be zero.

end;

TSendCmdInParams = packed record

// Buffer size in bytes

cBufferSize: DWORD;

// Structure with drive register values.

irDriveRegs: TIDERegs;

// Physical drive number to send command to (0,1,2,3).

bDriveNumber: BYTE;

bReserved: array[0..2] of Byte;

dwReserved: array[0..3] of DWORD;

bBuffer: array[0..0] of Byte; // Input buffer.

end;

TIdSector = packed record

wGenConfig: Word;

wNumCyls: Word;

wReserved: Word;

wNumHeads: Word;

wBytesPerTrack: Word;

wBytesPerSector: Word;

wSectorsPerTrack: Word;

wVendorUnique: array[0..2] of Word;

sSerialNumber: array[0..19] of CHAR;

wBufferType: Word;

wBufferSize: Word;

wECCSize: Word;

sFirmwareRev: array[0..7] of Char;

sModelNumber: array[0..39] of Char;

wMoreVendorUnique: Word;

wDoubleWordIO: Word;

wCapabilities: Word;

wReserved1: Word;

wPIOTiming: Word;

wDMATiming: Word;

wBS: Word;

wNumCurrentCyls: Word;

wNumCurrentHeads: Word;

wNumCurrentSectorsPerTrack: Word;

ulCurrentSectorCapacity: DWORD;

wMultSectorStuff: Word;

ulTotalAddressableSectors: DWORD;

wSingleWordDMA: Word;

wMultiWordDMA: Word;

bReserved: array[0..127] of BYTE;

end;

PIdSector = ^TIdSector;

TDriverStatus = packed record

// 驱动器返回的错误代码,无错则返回0

bDriverError: Byte;

// IDE出错寄存器的内容,只有当bDriverError 为 SMART_IDE_ERROR 时有效

bIDEStatus: Byte;

bReserved: array[0..1] of Byte;

dwReserved: array[0..1] of DWORD;

end;

TSendCmdOutParams = packed record

// bBuffer的大小

cBufferSize: DWORD;

// 驱动器状态

DriverStatus: TDriverStatus;

// 用于保存从驱动器读出的数据的缓冲区,实际长度由cBufferSize决定

bBuffer: array[0..0] of BYTE;

end;

var

hDevice: Thandle;

cbBytesReturned: DWORD;

SCIP: TSendCmdInParams;

aIdOutCmd: array[0..(SizeOf(TSendCmdOutParams) + IDENTIFY_BUFFER_SIZE - 1) - 1] of Byte;

IdOutCmd: TSendCmdOutParams absolute aIdOutCmd;

procedure ChangeByteOrder(var Data; Size: Integer);

var

ptr: Pchar;

i: Integer;

c: Char;

begin

ptr := @Data;

for I := 0 to (Size shr 1) - 1 do begin

c := ptr^;

ptr^ := (ptr + 1)^;

(ptr + 1)^ := c;

Inc(ptr, 2);

end;

end;

begin

Result := ''; // 如果出错则返回空串

if SysUtils.Win32Platform = VER_PLATFORM_WIN32_NT then begin // Windows NT, Windows 2000

// 提示! 改变名称可适用于其它驱动器,如第二个驱动器: '\\.\PhysicalDrive1\'

hDevice := CreateFile('\\.\PhysicalDrive0', GENERIC_READ or GENERIC_WRITE,

FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);

end else // Version Windows 95 OSR2, Windows 98

hDevice := CreateFile('\\.\SMARTVSD', 0, 0, nil, CREATE_NEW, 0, 0);

if hDevice = INVALID_HANDLE_VALUE then Exit;

try

FillChar(SCIP, SizeOf(TSendCmdInParams) - 1, #0);

FillChar(aIdOutCmd, SizeOf(aIdOutCmd), #0);

cbBytesReturned := 0;

// Set up data structures for IDENTIFY command.

with SCIP do begin

cBufferSize := IDENTIFY_BUFFER_SIZE;

// bDriveNumber := 0;

with irDriveRegs do begin

bSectorCountReg := 1;

bSectorNumberReg := 1;

// if Win32Platform=VER_PLATFORM_WIN32_NT then bDriveHeadReg := $A0

// else bDriveHeadReg := $A0 or ((bDriveNum and 1) shl 4);

bDriveHeadReg := $A0;

bCommandReg := $EC;

end;

end;

if not DeviceIoControl(hDevice, $0007C088, @SCIP, SizeOf(TSendCmdInParams) - 1,

@aIdOutCmd, SizeOf(aIdOutCmd), cbBytesReturned, nil) then Exit;

finally

CloseHandle(hDevice);

end;

with PIdSector(@IdOutCmd.bBuffer)^ do begin

ChangeByteOrder(sSerialNumber, SizeOf(sSerialNumber));

(Pchar(@sSerialNumber) + SizeOf(sSerialNumber))^ := #0;

Result := Pchar(@sSerialNumber);

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Edit1.Text := strpas(GetIdeSerialNumber);

end;

end.

{新建工程,把代码粘进去,添加一个edit和一个

button命名和里面一样就行。在xp环境调试过,你试试吧}

c# win7 非管理员读取硬盘序列号,代码怎么写,希望有老师能贴代码出来或者指点迷津,谢谢

去下载个win7激活工具可以了

1、未通过微软正版验证并被视为“非正版”出现“黑屏”,通常是两种情况: 一是采取“软改”或“硬刷”激活方式,使用的是已被封杀的联想第一枚OEM泄漏密钥;二是采取联网或电话激活方式,使用的是微软已经封杀的几枚“超频”Retai密钥。在出现以上异常的情况下,微软会间断性进行提示,并在计算机/属性中出现“必须当天激活”和“更改产品密钥”。

2、对于第一种情况,在计算机/属性中点击“更改产品密钥”,输入“6K2KY-BFH24-PJW6W-9GK29-TMPWP”,接受微软激活服务器验证之后,就会跳出一个“此Windows副本不是正版” + “正版标识” + “立即联机解决”的界面。点击“立即联机解决”,即进入正版验证过程。验证结果:Windows验证成功!现在,您可以利用正版Windows提供的所有功能,包括附加功能。

3、对于第二种情况,应当考虑所剩激活时间宽限,以下两种方式可根据实际“二选一”:其一,用其它Retai密钥尝试联网或电话激活。如果激活的话,就会跳出一个“此Windows副本不是正版” + “正版标识” + “立即联机解决”的界面。点击“立即联机解决”,即进入正版验证过程并顺利通过。其二,用“软改”工具选择联想以外品牌激活,再次进行正版验证肯定通过。此时此刻:桌面右下角“非正版”提示没有了!重启计算机,计算机/属性中的“Windows已激活”和“正版标识”出现了!调整桌面“个性化”主题,一切重归正常。

C# 读取硬盘序列号

不要用WMI来读了,这个东西非常不稳定的,有时候会读不到东西,但有时候又正常,而且容易受系统中的软件影响出现读取异常。

你要读硬件信息,我交你个方法,可以去下载 INTELLILOCK 这个C#混淆工具(当然要XX版的,因为它是收费的,不过也是因为收费的所以它的功能有保障),它有个功能可以为你的程序添加硬件读取功能,包括硬盘、cpu、主板、mac等等,它的这个方法经过它程序处理后可以集成到你的程序中,你按要求调用方法就可以了。具体可以百度它的使用方法。

抓狂的问题,这个所谓取CPU信息的代码在二台机子(一台I7 CPU,一台I5 CPU)上得到的信息一模一样

cpu不要去取,这个更没有意义的,cpu现在大部份都关闭了cpuid功能,所以很多你取不到。

以我的经验,一般你如果是单机那绑硬盘,其它的像主板、bios都可能变,如果是网络软件可以绑mac。

转载请注明出处51数据库 » win7vs2005读取硬盘序列号 WIN7系统如何查硬盘编号

软件
前端设计
程序设计
Java相关