| Delphi Tips & Tricks | softsale > Delphi Tips & Tricks |
| następna rada > | < poprzednia rada |
Jak stwierdzić czy zmieniono CD w drajwie?
Prostą metodą którą można zastosować do stwierdzenia czy zmieniony został CD w napędzie jest zbadanie jego "volume serial number". Realizuje to funkcja GetDiskVolSerialID (nazwa_drajwu). Porównanie zapamiętanej wartości z wartością otrzymaną przy następnym wywołaniu funkcji pozwala na określenie czy CD został zmieniony w napędzie.
function GetDiskVolSerialID(cDriveName : string ) : DWord;
var dwTemp1 : DWord;
begin
GetVolumeInformation(PChar(cDriveName + ':\' ),Nil,0,@Result,dwTemp1,dwTemp1,Nil,0);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//litera drajwu
for a := 'A' to 'Z' do
if GetDriveType(pChar(a + ':\')) = DRIVE_CDROM then
nazwa_drajwu:=a;
panel2.caption:='Nazwa drajwu: '+nazwa_drajwu;
//serial number drajwu
panel1.caption:='';
GetDiskVolSerialID(nazwa_drajwu);
serial_nowy:=Format('%X',[GetDiskVolSerialID(nazwa_drajwu)]);
if (serial_nowy=serial_stary) then
panel1.caption:= 'Nie zmieniono CD'+' '+ serial_stary
else panel1.caption:='Zmieniono CD'+' '+serial_nowy;
serial_stary:=serial_nowy;
end;
Ilustruje to przykład tip34.zip . Przykład ten ilustruje jednocześnie jak określić literę napędu CD_ROM ( jeśli jest kilka, zwracana jest ostatnia ). |
|
SOFTSALE - Oprogramowanie i Szkolenia softsale@softsale.com.pl 03-565 Warszawa , ul. Borzymowska 43 lok. 301C tel/fax:4084840,0607612428 |