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

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

Проблемы с WM_DEVICECHANGE...


Anonim ©   (2004-12-06 06:21:00) 

Пытаюсь обрабатывать это сообщение, но ничего не получается, сообщение не генерируется... или не посылается моему приложению. При всем этом остальные сообщения нормально передаются мне. Может кто встречался с такой проблемой?


abc   (2004-12-06 17:09:00) [1]

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
private
 { Private declarations }
 procedure WMDeviceChange(var Message: TMessage); message WM_DEVICECHANGE;
public
 { Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

const DBT_DEVICEARRIVAL = $8000;
const DBT_DEVICEQUERYREMOVE = $8001;
const DBT_DEVICEQUERYREMOVEFAILED = $8002;
const DBT_DEVICEREMOVEPENDING = $8003;
const DBT_DEVICEREMOVECOMPLETE = $8004;
const DBT_DEVICETYPESPECIFIC = $8005;
const DBT_CONFIGCHANGED = $0018;

procedure TForm1.WMDeviceChange(var Message: TMessage);
var S: string;
begin
{Do Something here}
case Message.wParam of
 DBT_DEVICEARRIVAL    : S:='A device has been inserted and is now available';
 DBT_DEVICEQUERYREMOVE: begin
                          S:='Permission to remove a device is requested';
                          ShowMessage(S);
                          {True grants premission}
                          Message.Result:=integer(True);
                          Exit;
                        end;
 DBT_DEVICEQUERYREMOVEFAILED: S:='Request to remove a device has been canceled';
 DBT_DEVICEREMOVEPENDING    : S:='Device is about to be removed';
 DBT_DEVICEREMOVECOMPLETE   : S:='Device has been removed';
 DBT_DEVICETYPESPECIFIC     : S:='Device-specific event';
 DBT_CONFIGCHANGED          : S:='Current configuration has changed'
 else S:='Unknown Device Message';
end;
ShowMessage(S);
inherited;
end;

end.
всё работает


Наверх

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