Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Название CD диска


Автор: Driv3r 21.9.2006, 19:37
Когда вставляешь диск в привод рядом со значком привода появляется  название CD  диска,ну к примеру Install_disk1. Можно ли программно определить название CD диска? 

Автор: Snowy 21.9.2006, 20:00
GetVolumeInformation всё расскажет.

Автор: Alexeis 21.9.2006, 20:03
Код

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;

procedure TForm1.Button1Click(Sender: TObject);
var
  VolLabel, SN, FileSystem, S: string;
begin
  s := 'g:\'; // имя CD дисковода
  GetDriveInfo(S, VolLabel, SN, FileSystem);
  Showmessage(VolLabel);
end;


Взято с DelphiWorld

Автор: Mr.Floppy 22.9.2006, 09:41
alexeis1, а чем отличается твоя процедура GetDriveInfo от GetVolumeInformation? Переводит в string?

Автор: Alexeis 22.9.2006, 09:46
Цитата(Mr.Floppy @  22.9.2006,  09:41 Найти цитируемый пост)
а чем отличается твоя процедура GetDriveInfo от GetVolumeInformation? Переводит в string? 

Она не моя а делфивордовская smile 
Ну удобней же 4 параметра передавать чем 8, да еще с пчарами возится.
А вообще все равно чем пользоватся, просто Snowy меня опередил smile 

Автор: Snowy 22.9.2006, 10:13
Она отличается тем, что это пример работы с GetVolumeInformation smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)