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

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

новое подключение Flash или ZIV


Doom-2 ©   (2007-05-06 10:39:00) 

Данная функция должна отследить новое подключение Flash или ZIV-а. Я поместил её в OnTimer1 и началось...
- Return value of function 'WindowProc' might be undefined
- Не заданы все параметры... а что такое: (Hwn, msg: longint): longint; stdcall мне не совсем понятно!
Из-за своей необразованности, не могу разобраться с кодом:

const DBT_DEVNODES_CHANGED = $7;

function WindowProc(Hwn, msg: longint): longint; stdcall;
var c: char;
    drive: string;
begin
if msg=WM_DEVICECHANGE
then begin
 if wpr = DBT_DEVNODES_CHANGED then //Состояние устройств изменилось
 begin
  for c := 'D' to 'Z' do // Определяем букву устройства
  begin
   drive := c + ':\';
   case GetDriveType(PChar(drive)) of //Проверяем тип устройства
    DRIVE_REMOVABLE: // Если флэха, то...
    begin
     ShowMessage('Обнаружен новый диск!');
    end;
   end;
  end;
 end;
end;
end;


Doom-2   (2007-05-06 12:15:00) [1]

С горем пополам разобрался:
type
 TForm1 = class(TForm)
 public
   procedure CD(var Msg: TMessage); message WM_DEVICECHANGE;
 end;

const  DBT_DEVNODES_CHANGED = $7;

procedure TForm1.CD(var Msg: TMessage);
var c: char;
   drive: string;
begin
 case Msg.WParam of
   DBT_DEVNODES_CHANGED:
   begin
    for c := 'D' to 'Z' do // Определяем букву устройства
    begin
     drive := c + ':\';
     case GetDriveType(PChar(drive)) of //Проверяем тип устройства
      DRIVE_REMOVABLE: // Если флэха, то...
      begin
       ShowMessage('Новый диск '+drive);
      end;
     end;
    end;
   end;
 end;
end;

Возник ещё вопрос:
Почему при подключении Flash-ки сообщение "Новый диск F:\" появляется нормально - 1 раз. Но при безопасном отключении оно выскакивает трижды! Как это исправить?


Virgo_Style   (2007-05-06 10:48:00) [2]

Doom-2   (06.05.07 10:40) [1]

Это какой-то ужас, по-моему


Doom-2   (2007-05-06 10:40:00) [3]

Как заставить его работать?


Наверх

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