![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Номер CD-диска [D5]
Tihomirov © (2003-08-23 14:48:00)
Как мне получить номер CD-диска
Fenik (2003-08-24 19:48:00) [1]http://www.delphimaster.ru/cgi-bin/forum.pl?id=1060529832&n=7
Tihomirov (2003-08-24 18:18:00) [2]
Fenik по подробней можно?
Fenik (2003-08-24 13:36:00) [3]
3. StretchBlt
Anatoly Podgoretsky (2003-08-24 11:18:00) [4]
Так записываем его в штатные телепаты.
2. Метку тома? или что то другое? Если да, то GetVolumeInformation
Tihomirov (2003-08-24 09:49:00) [5]
1). Yanis -спасбо. Ты меня правильно понял.
2). Как получить метку диска?
3). Как можно вывести картинку, с возможностью масштабирования?
Yanis (2003-08-24 08:43:00) [6]
To [3]
Он наверное имеет ввиду серийный номер компакта, а не букву (наверное).
To [2]
Серийный номер диска:
procedure TForm1.Button1Click(Sender: TObject);
var
VolumeName,
FileSystemName : array [0..MAX_PATH-1] of Char;
VolumeSerialNo : DWord;
MaxComponentLength,
FileSystemFlags : Integer;
begin
GetVolumeInformation("C:\",VolumeName,MAX_PATH,@VolumeSerialNo,
MaxComponentLength,FileSystemFlags,
FileSystemName,MAX_PATH);
Memo1.Lines.Add("VName = "+VolumeName);
Memo1.Lines.Add("SerialNo = $"+IntToHex(VolumeSerialNo,8));
Memo1.Lines.Add("CompLen = "+IntToStr(MaxComponentLength));
Memo1.Lines.Add("Flags = $"+IntToHex(FileSystemFlags,4));
Memo1.Lines.Add("FSName = "+FileSystemName);
end;
CD может иметь или не иметь серийный номер и/или универсальный код продукта
(Universal Product Code). MCI-расширение Windows предоставляет эту информации
с помощью комманды MCI_INFO_MEDIA_IDENTITY command. Эта команда возвращает
уникальную ID-строку.
uses MMSystem, MPlayer;
procedure TForm1.Button1Click(Sender: TObject);
var
mp : TMediaPlayer;
msp : TMCI_INFO_PARMS;
MediaString : array[0..255] of char;
ret : longint;
begin
mp := TMediaPlayer.Create(nil);
mp.Visible := false;
mp.Parent := Application.MainForm;
mp.Shareable := true;
mp.DeviceType := dtCDAudio;
mp.FileName := "D:";
mp.Open;
Application.ProcessMessages;
FillChar(MediaString, sizeof(MediaString), #0);
FillChar(msp, sizeof(msp), #0);
msp.lpstrReturn := @MediaString;
msp.dwRetSize := 255;
ret := mciSendCommand(Mp.DeviceId, MCI_INFO, MCI_INFO_MEDIA_IDENTITY,
longint(@msp));
if Ret <> 0 then
begin
MciGetErrorString(ret, @MediaString, sizeof(MediaString));
Memo1.Lines.Add(StrPas(MediaString));
end
else
Memo1.Lines.Add(StrPas(MediaString));
mp.Close;
Application.ProcessMessages;
mp.free;
end;
end.
Anatoly Podgoretsky (2003-08-23 16:42:00) [7]
Опять же непонятно, какой такой индивидуальный номер.
А для подобной проверки вообще не нужен никой номер, если ты про дисковод, соответсвенно второй уточнющий вопрос, что за диск ты имеешь в виду в своем вопросе.
Tihomirov (2003-08-23 15:10:00) [8]
Индивидуальный номер компакт-диска
Суть - проверка с какого диска запущенна программа
Anatoly Podgoretsky (2003-08-23 14:53:00) [9]
Какой номер?