Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как отловить открытие/закрытие дверцы 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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо