Показать сообщение отдельно
  #5  
Старый 11.02.2010, 11:04
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

Цитата:
Сообщение от friz
спасибо вроде работает! единственное вроде как не будет работать после форматирования флешки(где-то в нете нарыл)
А теперь вопросы номер два и три :
2) как определить момент подключения флешки?
3) как программно отсоединять(извлекать) не нужные мне флешки?
для пункта 2 использовать RegisterDeviceNotification
Код:
procedure TRSAMessForm.FormCreate(Sender: TObject);
var
  NF:TDEV_BROADCAST_DEVICEINTERFACE;
begin
  FNeedExecute := False;

  NF.dbcc_size:=sizeof(TDEV_BROADCAST_DEVICEINTERFACE);
  NF.dbcc_devicetype:=DBT_DEVTYP_DEVICEINTERFACE;

  FDeviceNotification := RegisterDeviceNotification(Handle,@NF,DEVICE_NOTIFY_ALL_INTERFACE_CLASSES);
end;

{    procedure OnDeviceChange(var Msg: TMessage); message WM_DEVICECHANGE; }

procedure TRSAMessForm.OnDeviceChange(var Msg: TMessage);
begin

  case Msg.WParam of
    DBT_DEVICEREMOVECOMPLETE: WaitExec();

    DBT_DEVICEARRIVAL: WaitExec(True);
    DBT_DEVNODES_CHANGED: WaitExec();
  end;

end;
Я отслеживал извлечение
Ответить с цитированием