我对CD标识感兴趣。
我的问题:
有没有可以编程检索的序列号?
编辑(已解决):
在VB中试试这个代码
Private Declare Function GetVolumeInformation Lib "coreel32" 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
这应该作为您的概念证明。 你可以适应你的语言选择。
采取从这里: VB论坛
GetVolumeInformation( lpRootPathName: PChar; {the path to the root directory} lpVolumeNameBuffer: PChar; {the buffer receiving the volume name} nVolumeNameSize: DWORD; {the maximum size of the buffer} lpVolumeSerialNumber: PDWORD; {a pointer to the volume serial number} var lpMaximumComponentLength: DWORD; {maximum file component name} var lpFileSystemFlags: DWORD; {file system flags} lpFileSystemNameBuffer: PChar; {the buffer receiving the file system name} nFileSystemNameSize: DWORD {the maximum size of the file system name} ): BOOL; {returns TRUE or FALSE}
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')]));