Windows 通过序列号识别CD-ROM
我对CD识别感兴趣 我的问题: 是否有可以通过编程方式检索的序列号 编辑(已解决):Windows 通过序列号识别CD-ROM,windows,language-agnostic,serial-number,cd-rom,Windows,Language Agnostic,Serial Number,Cd Rom,我对CD识别感兴趣 我的问题: 是否有可以通过编程方式检索的序列号 编辑(已解决): function GetCDROMSerial(AVolName: Char ) : DWord; var Dummy1, Dummy2 : DWord; begin GetVolumeInformation( PChar( AVolName+':' ), nil, 0, @Result, Dummy1, Dummy2,
function GetCDROMSerial(AVolName: Char ) : DWord;
var
Dummy1, Dummy2 : DWord;
begin
GetVolumeInformation(
PChar( AVolName+':' ),
nil,
0,
@Result,
Dummy1,
Dummy2,
nil,
0
);
end;
ShowMessage(Format('%X', [GetCDROMSerial('F')]));
Private Declare Function GetVolumeInformation Lib "Kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
Private Sub Form_Load()
Dim Serial As Long
'Get the volume information
GetVolumeInformation "d:\", vbNullString, 255, Serial, 0, 0, vbNullString, 255
MsgBox Hex(Serial)
End Sub
这应该作为您的概念证明。你可以根据你选择的语言来调整它
从此处开始:Windows.GetVolumeInformation语法
Delphi端口(略微改编自的帖子) GetCDROMSerial片段:
function GetCDROMSerial(AVolName: Char ) : DWord;
var
Dummy1, Dummy2 : DWord;
begin
GetVolumeInformation(
PChar( AVolName+':' ),
nil,
0,
@Result,
Dummy1,
Dummy2,
nil,
0
);
end;
ShowMessage(Format('%X', [GetCDROMSerial('F')]));
用法示例:
function GetCDROMSerial(AVolName: Char ) : DWord;
var
Dummy1, Dummy2 : DWord;
begin
GetVolumeInformation(
PChar( AVolName+':' ),
nil,
0,
@Result,
Dummy1,
Dummy2,
nil,
0
);
end;
ShowMessage(Format('%X', [GetCDROMSerial('F')]));
谢谢你的回答。我只是想确定检索到的
序列是独立于操作系统的,是这样还是它只是由Windows计算的特定哈希?CD-ROM实际上有一个序列号。这是独立操作系统再次感谢您。我接受你的回答,我会尝试做一个Delphi端口,稍后再发布。我在Q中添加了一个标签。希望其他语言的实现(答案)会发布在这里。bigresource.com是一个自动生成的门口刮板网站,在显示广告时只会重定向你。如果可以,你应该发布一个指向“真实”内容的链接。这是我的Andrei答案的Delphi端口(用Delphi XE测试)。