Interceptar o CD-ROM
alguém sabe como Interceptar a chamada ao CD-ROM. Ex.: quando o usuário inserir o CD-Rom o programa avisar.
Einstein
Curtidas 0
Respostas
Nerdex
06/05/2004
Deves trabalhar com MCI (multimídia control devices), enviando e/ou recebendo os comandos específicos para o caso...
ex: para abrir a gaveta do CD-Rom:
uses MMSystem;
MciSendString(´Set cdaudio door open´, nil, 0, handle);
Existem dezenas de comandos (Multimedia Command Strings), para diversos devices, como: CDRom, VCR, DVD, DAT.....
Abaixo o link com todos as string de comando para os drivers multimídia, compatíveis com os SOs Windows:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_multimedia_command_strings.asp
ex: para abrir a gaveta do CD-Rom:
uses MMSystem;
MciSendString(´Set cdaudio door open´, nil, 0, handle);
Existem dezenas de comandos (Multimedia Command Strings), para diversos devices, como: CDRom, VCR, DVD, DAT.....
Abaixo o link com todos as string de comando para os drivers multimídia, compatíveis com os SOs Windows:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_multimedia_command_strings.asp
GOSTEI 0
Cebikyn
06/05/2004
Ou se preferir pode usar o código abaixo:
type
TForm1 = class(TForm)
{...}
private
{...}
procedure WMDeviceChange(var Msg: TMessage); message WM_DEVICECHANGE;
public
end;
{...}
implementation
{$R *.DFM}
procedure TForm1.WMDeviceChange(var Msg: TMessage);
const
DBT_DEVICEARRIVAL = $8000;
DBT_DEVICEREMOVECOMPLETE = $8004;
var
Mensagem: string;
begin
inherited;
case Msg.wParam of
DBT_DEVICEARRIVAL: Mensagem := ´Foi inserido um CD!´;
DBT_DEVICEREMOVECOMPLETE: Mensagem := ´O CD foi removido!´;
end;
ShowMessage(Mensagem);
end;GOSTEI 0