HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Plug&Play eszközök csatlakoztatásának és eltávolításának figyelése programból


Példaprogram letöltése

3859 bájt

Manapság egyre nagyobb teret hódítanak maguknak az úgynevezett Plug&Play eszközök, melyeknek az a lényege, hogy számítógépünkhöz működés közben is bármikor csatlakoztathatók, a rendszer automatikusan felismeri és lekezeli az adott eszközt. Manapság nyomtatók, monitorok, digitális fényképezőképek képesek minderre a Universal Serial Bus-on, azaz az USB port-on keresztül. Cikkünkben annak járunk utána, hogyan is tudjuk egy ilyen eszköz csatlakoztatását, illetve eltávolítását programból figyelni.

Ahhoz, hogy mindezt meg tudjuk tenni, el kell kapnunk a WM_DEVICECHANGE Windows üzenetet, mely akkor generálódik, mikor egy eszközt ily módon csatlakoztatunk, vagy leválasztunk. Ez az üzenet a következő konstans értékek valamelyikét tartalmazza az egyes események bekövetkeztekor.
const DBT_DEVICEARRIVAL = $8000;
A fenti érték egy eszköz sikeres csatlakoztatásakor jön létre.
      DBT_DEVICEQUERYREMOVE = $800 ;
Az eszköz eltávolítására a rendszertől engedélyt kell kérni. Ez az érték ebben az esetben generálódik.
      DBT_DEVICEQUERYREMOVEFAILED = $8002;
Amennyiben a rendszer elutasítja az eszköz eltávolítására vonatkozó kérelmet, a fenti értékkel tér vissza a Message.
      DBT_DEVICEREMOVEPENDING = $8003;
Amennyiben a rendszer elfogadja a kérelmet, az eszköz készen áll az eltávolításra.
      DBT_DEVICEREMOVECOMPLETE = $8004;
Amennyiben az eszköz eltávolítása sikeresen befejeződött, a Windows a fenti értékkel tér vissza.
      DBT_DEVICETYPESPECIFIC = $8005;
Ezen érték esetén egy eszközfüggő esemény történt.
      DBT_CONFIGCHANGED = $008;
Csatlakoztatáskor illetve leválasztáskor az aktuális konfiguráció megváltozik. A fenti érték ezt jelzi.
Készítsünk egy olyan eljárást, mely egy TMessage osztályból származtatott Message nevű változóban fogadja a WM_DEVICECHANGE rendszerüzenet paraméterét, majd megvizsgálja azt.
procedure TForm1.WMDeviceChange(var Message: TMessage);
var s : string;
begin
A Message változó wParam paraméterében kapott konstansok értékét megvizsgáljuk, majd annak megfelelő üzenetet íratunk ki.
  case Message.wParam of
    DBT_DEVICEARRIVAL:   s:='A rendszerhez egy eszköz lett csatlakoztatva, mely készen áll a használatra.';
    DBT_DEVICEQUERYREMOVE:
      begin
        s:='Az eszköz eltávolítására engedély lett kérve.';
        Label2.Caption:=s;
        Message.Result:=integer(true);
        exit;
      end;
    DBT_DEVICEQUERYREMOVEFAILED: s:='Az eszköz eltávolítására kért engedély el lett utasítva.';
    DBT_DEVICEREMOVEPENDING: s:='Az eszköz készen áll az eltávolításra.';
    DBT_DEVICEREMOVECOMPLETE: s:='Az eszköz el lett távolítva a rendszerből.';
    DBT_DEVICETYPESPECIFIC: s:='Eszközfüggő esemény.';
    DBT_CONFIGCHANGED: s:='A aktuális konfiguráció meg lett változtatva.'
  else s:='Ismeretlen eszköz üzenet.';
  end;
  Label2.Caption:=s;
  inherited;
end;
A program működését bármely USB-s eszközünk segítségével kipróbálhatjuk. Olyan eszközök esetén, melyek eltávolíthatók a rendszerből, mint például egy digitális fényképezőgép vagy egy hordozható háttértár, a Tray-en meg kell jelenni egy zöld nyíl ikonnak, mely jelzi, hogy új eszköz került a konfigurációba.
Amennyiben jobb gombbal kattintunk rá, lehetőség nyílik az eszköz eltávolítására is. Ha valaki CD emulátor szoftvert használ a számítógépén, a programot azzal is kipróbálhatja.



Cikksorozat



Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 551. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |