![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как отловить открытие/закрытие дверцы CD-ROM? [D1, D2, D3, D4, D5, D6, D7, Win95/98, WinME, NT4, Win2k, WinXP]
Вадим Станкевич © (2005-06-04 02:14:00)Когда-то где-то писали, что должно высылаться сообщение WM_DEVICECHANGE, но... не работает! Дамы и господа, очень прошу, ПОМОГИТЕ!
Max009 (2005-06-29 18:19:00) [1]Можно через библиотеку bass.dll
Вадим Станкевич (2005-06-04 23:17:00) [2]Большое спасибо всем! Особенно NeoVariant!
rem b (2005-06-04 20:23:00) [3]Как отловить - без диска на лотке никак к сожелению
NeoVariant (2005-06-04 19:59:00) [4]Не знаю, как ты обрабатываешь сообщение WM_DEVICECHANGE, но мой вариант работает.
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
myMsg: string;
begin
inherited;
case Msg.wParam of
DBT_DEVICEARRIVAL: myMsg := 'CD вставлен';
DBT_DEVICEREMOVECOMPLETE: myMsg := 'CD извлечён';
end;
ShowMessage(myMsg);
end;