Delphi - CD lemez behelyezésének és kivételének eseménykezelése

forráskód letöltése
Ha szükségünk lenne arra az információra, hogy a felhasználó mikor vesz ki egy lemezt a CD meghajtóból, vagy mikor helyez be egy másikat, akkor ennek módját megtudhatjuk a mellékelt példából. Ha szükségünk lenne arra az információra, hogy a felhasználó mikor vesz ki egy lemezt a CD meghajtóból, vagy mikor helyez be egy másikat, akkor ennek módját megtudhatjuk a mellékelt példából.

Ha több CD meghajtó van a gépben, akkor a mellékelt példa segítségével azt is meghatározhatja, hogy melyik az a meghajtó, amelynél az esemény történt.



A példaprogram teszteléséhez annak indulása után tegyen be CD lemezt, illetve távolítsa el azt.

A megoldás kulcsa a WM_DEVICECHANGE Windows által küldött üzenetben rejlik. Itt kaphatunk értesítést a fenti két esemény bekövetkeztekor.

Ennek csöppnyi szépséghibája, hogy "elfelejtették" a Delphi-ben deklarálni a hozzátartozó típusokat. Ezen persze segíthetünk és megtehetjük mi magunk is.

Az üzenet létrejöttekor a TWMDeviceChange struktúra Event mezőjében kapjuk meg, hogy melyik esemény következett be. A $8000 konstans érték jelenti, hogy új CD lett behelyezve, míg a $8004 az eltávolítást.

Annak meghatározására, hogy melyik az adott CD meghajtó betűjele, készítünk egy kis függvényt, mely az üzenettel kapott paraméterből meghatározza azt.