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

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

Определение изменений устройств Plug&Play


SYNthetic ©   (2002-11-23 21:30:00) 

Мастера, помогоите плиз, в FAQ надыбал такой исходник для обределения изменений устройств в системе:
type
TForm1 = class(TForm)
Button1: TButton;
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;
Подскажите только как пользоваться этой процедцрой? Нужно просто чтобы прога определяла внешний модем, если при загрузке ОС он был выключен.


Morfein   (2002-11-25 21:29:00) [1]

Гы )))
Что значит, как ей пользоваться??
Это ж получился обработчик сообщения WM_DEVICECHANGE...
Вот эта процедура(Tform1.WMDeviceChange) и вызовется, когда
система пошлёт твоему окну сообщение WM_DEVICECHANGE!
А пошлёт или нет - это уже другой вопрос...

Если хочешь определить модем, попробуй функцию RasEnumDevices() из wininet.dll. Она выдаёт список сетевых девайсов... Мож для твоего случая прокатит, попробуй...


Наверх

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