HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Futó alkalmazások bezárása


Példaprogram letöltése

11525 bájt

Ebben a példában egy olyan komponenst készítünk, amely képes az összes futó alkalmazást egyszerre bezárni, de csak azokat, amelyek a Tálcán is megjelennek.
A mellékelt példaprogram megnyitása előtt a CloseAllApp.pas-ban lévő komponenst telepítenie kell a Delphi alá.

A komponensnek csak egy property-je van, a CloseOwnerApplication. Ez egy logikai típusú property, amelyben beállíthatjuk, hogy az az alkalmazás is be legyen-e zárva, amiben a komponenst felhasználjuk, vagy sem. Eseményből azonban van három is. Az OnStart és OnFinished a művelet elkezdése előtt, illetve után jönnek létre. Az OnCloseApp esemény minden alkalmazásnál létrejön, és a paramétereiben az éppen bezárandó ablakról ad át információkat (WHandle és WindowInfo paraméterek). Az eseményben eldönthetjük, hogy az ablakot bezárjuk-e vagy sem. Ha nem, akkor a Close paraméter értékét hamisra kell állítani (alapértelmezetten igaz).
A művelet az Execute eljárás meghívásával kezdődik. Két globális változóba elmentjük az Asztal (Progman) és a Tálca (Shell_TrayWnd) ablakok azonosítóit (HWND). Hogy erre miért van szükség, arról kicsit lejjebb lesz szó. Az EnumWindows függvénnyel sorban beolvastatjuk az ablakok azonosítóit. Az lParam paraméterben átadjuk a komponens objektumát, mivel erre szükség lesz az EnumWindowsProc függvényben, ami minden azonosítónál meghívódik. Ebben a függvényben paraméterként megkapjuk a soron következő ablak azonosítóját (Handle), és a komponens objektumát. Az IsWindow és az IsWindowVisible függvényekkel ellenőrizzük, hogy az azonosító ablakhoz tartozik-e, és az ablak látható-e. Mivel ennek a két kritériumnak megfelelnek a Progman és a Shell_TryWnd ablakok, ezért ezeket külön ellenőrizni kell, ezért kérdeztük le előzőleg ezek azonosítóját. Ha ezt a két ablakot is bezárnánk, akkor egyszerűen eltűnne az Asztal és a Tálca a képernyőről, és csak az Explorer újraindításával jeleníthetnénk meg újra.
A következő lépés a CloseOwnerApplication property értékének ellenőrzése. Ha az értéke hamis, akkor megnézzük, hogy a kapott azonosító nem az alkalmazás ablakáé-e. Ha igen, akkor ezt az ablakot nem zárjuk be, így az alkalmazást sem.
Generálunk egy OnCloseApp eseményt, és a Close paraméter értékétől függően eldöntjük, hogy az alkalmazást bezárjuk-e vagy sem. A bezárás úgy történik, hogy a PostMessage függvénnyel egy WM_CLOSE üzenetet küldünk az ablaknak.



Cikksorozat

#IDKategóriaCikk címeSorozat
3916WindowsA javascript nyelv bemutatása1. rész
3946WindowsJavascript változók és operátorok2. rész
3975WindowsKódvezérlés JScript-ben3. rész
4004WindowsFüggvények és objektumok4. rész
4036WindowsFejlett funkciók a JavaScript nyelvben5. rész
4066WindowsFejlett funkciók a JavaScript nyelvben - folytatás6. rész
4116WindowsReguláris kifejezések7. rész
4145WindowsReguláris kifejezések - folytatás8. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2001 évkönyv 586. 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 |