Fórum Urgente CD-Rom #185263

30/09/2003

0

Ola!
Estou trabalhando com uma máquina com duas unidade de cd, uma CD-Rom e outra CD-RomRW e Preciso saber se existe um CD na unidade de CD-RomRW se não existir abrir o mesmo.
Consegui esta função mais não sei como executar:

Uses MMSystem

Function MidiaPresente(MediaPlayer: TMediaPlayer): Boolean;
var
Params: MCI_STATUS_PARMS;
S: array [0..255] of char;
r: Integer;
begin
//verifica se existe um cd inserido
Params.dwItem:= MCI_STATUS_MEDIA_PRESENT;
r:= MCISendCommand(MediaPlayer.DeviceID, MCI_STATUS, MCI_STATUS_ITEM, Integer(Addr(Params)));
if r <> 0 then
begin
MCIGetErrorString(r, S, SizeOf(S));
ShowMessage(´Erro: ´ + StrPas(S));
end
else
Result:= Params.dwReturn = 1;
end;

Um abraço e Obrigado.


Iranilson

Iranilson

Responder

Posts

30/09/2003

Cebikyn

Use esta função, basta passar a letra do gravador de CD e ela retorna true se tiver um CD lá.

function DiskInDrive(Drive: Char): Boolean; 
  // Disk can be a floppy, CD-ROM,... 
var 
  ErrorMode: Word; 
begin 
  if Drive in [´a´..´z´] then Dec(Drive, $20); 
  if not (Drive in [´A´..´Z´]) then 
    raise EConvertError.Create(´Letar inválida´); 
  { turn off critical errors } 
  ErrorMode := SetErrorMode(SEM_FailCriticalErrors); 
  try 
    { drive 1 = a, 2 = b, 3 = c, etc. } 
    if DiskSize(Ord(Drive) - $40) = -1 then 
      Result := False 
    else 
      Result := True; 
  finally 
    SetErrorMode(ErrorMode); 
  end; 
end;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar