答:详细方法如下:
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,进入命令行界面:
diskpart
list disk 查看有几块硬盘
select disk 0 选择第一块硬盘
detail disk 显示选择的硬盘详细信息
显示的第一行是硬盘型号,第二行ID是序列号。
若有多块硬盘,返回第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系统如何查硬盘编号
段界撸神





