Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.01.13;
Скачать: CL | DM;

Вниз

Как определить что пользователь вставил сьемный диск.   Найти похожие ветки 

 
Reals   (2007-12-14 16:36) [0]

Здравствуйте!

Возможно ли как-то в своем приложении определить, что пользователь вставил например флешку (появился новый сьемный диск в системе), и обновить ListBox со списками доступных дисков? А когда пользователь вытащил флешку, то опять же запускается процедура перечитки достцпных дисков.

P.S. Процедура генерирующая список доступных дисков имеется, нужно только научится поставить какой-то hook на систему, что появился новый диск.

Заранее премного благодарен!
Спасибо!


 
www   (2007-12-14 16:43) [1]

зачем хук
система рассылает сообщение об изменении аппаратного состава


 
Reals   (2007-12-14 16:46) [2]

Так подскажите как "словить" это сообщение?

Спасибо!


 
Free_Breeze   (2007-12-14 16:51) [3]

а нельзя по таймеру сравнивать предидущее значение доступных дисков с новым?


 
Джо ©   (2007-12-14 16:52) [4]

Сообщение WM_DEVICECHANGE.


 
Kolan ©   (2007-12-14 16:55) [5]

Не флешка, но разобраться можно:

procedure WMDEVICECHANGE(var Msg : TWMDeviceChange); message WM_DEVICECHANGE;

procedure TMainForm.WMDEVICECHANGE(var Msg: TWMDeviceChange);
var
 lpdb  : PDevBroadcastHdr;
 lpdbpr: PDevBroadCastPort;
 S: string;
begin
{Заголовок сообщения}
lpdb := PDevBroadcastHdr(Msg.dwData);
case Msg.Event of
  DBT_DEVICEARRIVAL:
  begin {Добавление}
    if lpdb^.dbch_devicetype = DBT_DEVTYP_PORT then begin
      lpdbpr:= PDevBroadCastPort(Msg.dwData);
      S := StrPas(@lpdbpr.dbcp_name);

      SetComName(S);
    end;
  end;
  DBT_DEVICEREMOVECOMPLETE:
  begin {Удаление}
    if lpdb^.dbch_devicetype = DBT_DEVTYP_PORT then begin
      lpdbpr:= PDevBroadCastPort(Msg.dwData);
      S := StrPas(@lpdbpr.dbcp_name);
      if S = GetComName then
      begin
        SetComName("COM1");
      end;
    end;
  end;
end;
end;


 
Kolan ©   (2007-12-14 16:57) [6]

> а нельзя по таймеру сравнивать предидущее значение доступных
> дисков с новым?

— А эти грибы можно есть?
— Можно.
— &#133
— Только отравишся.


 
Reals   (2007-12-14 17:13) [7]

To: [5] Kolan

Спасибо огромное. Разобрался, немного переделал и все получилось.

Удачи!


 
Kolan ©   (2007-12-14 17:15) [8]

> Разобрался, немного переделал и все получилось.

Ну и хорошо. :)


 
Stas ©   (2007-12-14 17:18) [9]

Procedure NewDevice(var Msg:TMessage); message WM_DEVICECHANGE;
procedure TForm1.NewDevice(var Msg:TMessage);
begin
 if (msg.WParam=$8000) or (msg.WParam=$8004)
  then ...
end;



Страницы: 1 вся ветка

Текущий архив: 2008.01.13;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.006 c
15-1197099559
quest
2007-12-08 10:39
2008.01.13
помогите с задачами


2-1197534498
phantom
2007-12-13 11:28
2008.01.13
Многопоточность в CGI


11-1176486000
Vladimir Kladov
2007-04-13 21:40
2008.01.13
Версия 2.57


1-1192469313
Megaman KN
2007-10-15 21:28
2008.01.13
Сжатие методом Хаффмана


15-1197145241
antonn
2007-12-08 23:20
2008.01.13
Посоветуйте заменитель Outlook Express





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский