Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
Как получить идентификатор находящегося в CD-ROM'е аудио-компакта?
constMCI_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).
Исправления
// метка диска procedureGetDriveInfo(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
;
// далее varVolLabel, SN, FileSystem, S: string
; begin
s := 'g:';
// имя CD дисковода GetDriveInfo(S, VolLabel, SN, FileSystem);
получаем:
VolLabel - 'ARMSTRONG' // метка диска SN - B5FF77AD // номер серийный FileSystem - CDFS // тип файловой системы
Работает не только для CD для всех типов дисков ... Далее:
// метка диска procedureGetAllDrive(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