Получение идентификатора диска

Советы » Диски » Получение идентификатора диска

Как получить идентификатор находящегося в CD-ROM'е аудио-компакта?

const

MCI_INFO_PRODUCT = $00000100; MCI_INFO_FILE = $00000200; MCI_INFO_MEDIA_UPC = $00000400; MCI_INFO_MEDIA_IDENTITY = $00000800; MCI_INFO_NAME = $00001000; MCI_INFO_COPYRIGHT = $00002000; { блок параметров для командного сообщения MCI_INFO } type

PMCI_Info_ParmsA = ^TMCI_Info_ParmsA; PMCI_Info_ParmsW = ^TMCI_Info_ParmsW; PMCI_Info_Parms = PMCI_Info_ParmsA; TMCI_Info_ParmsA = record

dwCallback: DWORD; lpstrReturn: PAnsiChar; dwRetSize: DWORD; end

; TMCI_Info_ParmsW = record

dwCallback: DWORD; lpstrReturn: PWideChar; dwRetSize: DWORD; end

; TMCI_Info_Parms = TMCI_Info_ParmsA;

Идентификатор возвращается функцией MCI_INFO_MEDIA_IDENTITY в виде строки с десятичным числом. Для получения дополнительной информации обратитесь к электронной справке (Win32 и компонент TMediaPlayer).

Исправления

// метка диска

procedure

GetDriveInfo(VolumeName: string

; var

VolumeLabel, SerialNumber, FileSystem: string

); var

VolLabel, FileSysName: array

[0..255] of

char; SerNum: pdword; MaxCompLen, FileSysFlags: dword; begin

New(SerNum); GetVolumeInformation(PChar(VolumeName), VolLabel, 255, SerNum, MaxCompLen, FileSysFlags, FileSysName, 255); VolumeLabel := VolLabel; SerialNumber := Format('%x', [SerNum^]); FileSystem := FileSysName; Dispose(SerNum); end

; // далее var

VolLabel, SN, FileSystem, S: string

; begin

s := 'g:'; // имя CD дисковода GetDriveInfo(S, VolLabel, SN, FileSystem);

получаем:

VolLabel   - 'ARMSTRONG' // метка диска
SN         -  B5FF77AD   // номер серийный
FileSystem -  CDFS       // тип файловой системы

Работает не только для CD для всех типов дисков ... Далее:

// метка диска
procedure

GetAllDrive(Sender: TObject); var

i, mask: integer; s: string

; begin

mask := GetLogicalDrives; i := 0; while

mask <> 0 do

begin

s := chr(ord('a') + i) + ':'; if

(mask and

1) <> 0 then

case

GetDriveType(PChar(s)) of

0: ListBox1.Items.Add(s + ' unknown.'); 1: ListBox1.Items.Add(s + ' not exist.'); DRIVE_REMOVABLE: ListBox1.Items.Add(s + ' removable.'); // floppy,zip DRIVE_FIXED: ListBox1.Items.Add(s + ' fixed.'); DRIVE_REMOTE: ListBox1.Items.Add(s + ' network.'); DRIVE_CDROM: ListBox1.Items.Add(s + ' CD-ROM.'); DRIVE_RAMDISK: ListBox1.Items.Add(s + ' RAM.'); end

; inc(i); mask := mask shr

1; end

; end

;

В ListBox1 получаем все диски на данном компьютере.

Whith best regards Vasili Pincuk

ICQ 10558844
http://www.geocities.com/pvasili E-mail: pvasili@geocities.com

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com