HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Alkalmazások időzített indítása


Példaprogram letöltése

7048 bájt

Készítünk egy alkalmazást, amely a háttérben fut, nem jelenik meg a tálcán, a képernyőn pedig csak akkor látható, ha meg akarjuk jeleníteni. Az alkalmazás segítségével más alkalmazásokat indíthatunk el ütemezetten. Megadhatjuk az indítás napját és idejét. Az alkalmazás bármilyen állományt képes megnyitni, amit a Windows ismer. Használhatjuk ébresztőóraként, vagy emlékeztetőként egyaránt.

Miután a mellékelt alkalmazást elindítottuk, csak a Kilép feliratú gomb segítségével tudunk kilépni belőle. Ha a bezárás ikonra kattintunk, vagy ALT+F!-et nyomunk, az alkalmazás a háttérbe kerül. A háttérbe került alkalmazás bármikor megjeleníthető a CTRL+SHIFT+F12 billentyűkombináció lenyomásával.
Az elindítandó programokat és az indítások időpontjait egy adattáblában tároljuk el. A mellékelt példában Paradox 7 típusú adattáblát használunk, Data.db néven.
Egy TTimer komponens segítségével figyeljük, hogy melyek azok az alkalmazások, amelyeket el kell indítanunk az adott pillanatban. A TTimer 5 másodpercenként nézi végig az adattábla tartalmát.
A Data.db tábla „Elindítva” mezője segítségével figyeljük azokat a bejegyzéseket, amelyek még nem lettek elindítva. Ha a mező értéke hamis, akkor az a program elindításra vár. Elindítás után a mező értékét azonnal igazra állítjuk.
Az elindítandó programot a „Program” mező tárolja. Elindításához a ShellApi unit ShellExecute függvényét használjuk.
ShellExecute(0,'open',PChar('"'+FieldByName('Program').AsString+'"'),'','',SW_SHOW);
A ShellExecute függvénynek bármilyen állományt megadhatunk, amelyet a Windows ismer. Az operációs rendszer automatikusan megnyitja az állományhoz rendelt programot.
A ShellExecute függvény paraméterei közül az ’open’ a megnyitást jelenti. A futtatandó program elérési útját és nevét a harmadik paraméterben kell megadnunk. Ha az elérési út vagy állománynév szóközöket is tartalmaz, akkor célszerű azt „” jelek közé tennünk. Ha a megnyitandó programnak paraméterei is vannak, akkor azt a negyedik paraméterben állíthatjuk be. Az ötödik paraméter a megnyitandó program munkakönyvtárát jelenti. Ha a programot csak a háttérben akarjuk megnyitni, akkor az SW_SHOW paraméter helyett az SW_HIDE-ot kell alkalmaznunk.
Az alkalmazás lehetővé teszi, hogy a futtatandó programok mellé egy üzenetet is megjelenítsünk. Ilyenkor megjelenik a Form2 ablak. A fókuszt a SetForeGroundWindow függvény segítségével adhatjuk át egy látható ablaknak.
SetForeGroundWindow(Form2.Handle);
A függvény paraméterében az ablak azonosítóját kell megadnunk.
Ha azt akarjuk, hogy alkalmazásunk ikonja ne jelenjen meg a tálcán, a SetWindowLong függvény segítségével módosítanunk kell a tulajdonságait a következő módon.
SetWindowLong(Application.Handle, GWL_EXSTYLE,GetWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
A Form OnCreate eseményében kell gondoskodnunk arról, hogy alkalmazásunk ikonja az óra mellett jelenjen meg.
Az óra mellé a Shell_NotifyIcon függvény segítségével helyezhetünk el és törölhetünk egy saját ikont.
Shell_NotifyIcon(NIM_ADD,@FIconData);
A fenti függvényhívás egy ikon létrehozására szolgál. Ha az első paraméterben NIM_DELETE-et adunk meg, akkor a függvény törli az ikont.
Azt, hogy az ikon ilyen képpel és tulajdonságokkal jelenjen meg, a második paraméterben adhatjuk meg egy TNotifyIconData típusú változó segítségével.
Az FCanClose logikai változó segítségével felügyeljük, hogy az alkalmazás bezárható-e. A változó értékét hamisra állítjuk. A hamis értéket csak a Kilép feliratú gomb állíthatja át igazra.
A változó értékét a Form OnCloseQuery eseményében használjuk fel.
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
...
  if FCanClose=False then
  Hide;
Ha az FCanClose változó értékét hamisra állítjuk, az meggátolja az ablak bezárását. A bezárás helyett elrejtjük a Form-ot.
A Form visszaállítását a CTRL+SHIFT+F12 billentyűkombinációval végezzük el.
procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin
  if Msg.HotKey=123 then begin
    Visible:=True;
    SetForeGroundWindow(Handle);
  end;
end;
Ahhoz, hogy a CTRL+SHIFT+F11 billentyűkombinációt ismerje a Windows, a Form OnCreate eseményében regisztrálnunk kell azt.
RegisterHotKey(Handle,123,MOD_CONTROL+MOD_SHIFT,123); 
A RegisterHotKey első paramétere a Form azonosítója. A második paraméterben egy számot kell megadnunk, amely a továbbiakban a billentyűkombinációt azonosítani fogja. A harmadik paraméterben kell megadnunk a használandó módosító billentyűket (CTRL és SHIFT). Végül a negyedik paraméterbe kerül a billentyű kódja.
A billentyűkombináció lenyomásának kezeléséhez implementálnunk kell a WMHotKey metódust.
A Form OnDestroy eseményében töröljük a regisztrált billentyűkombinációt, valamint az óra mellett elhelyezett ikont.
UnRegisterHotKey(Form1.Handle,123);
Shell_NotifyIcon(NIM_DELETE,@FIconData);

Cikksorozat

#IDKategóriaCikk címeSorozat
2591WindowsTippek és trükkök - RAS - Modem csengetési szám állítása1. rész
2622WindowsTippek és trükkök - Program futtatása más felhasználóként2. rész
2640WindowsA Windows ikonméretének megváltoztatása és Windows 2000 Asztaltémák3. rész
2657WindowsTippek és trükkök - Internet Explorer4. rész
2667WindowsTippek és trükkök5. rész
2684WindowsAlapértelmezések állítása, telepítési fájlok helye, intéző nézetek6. rész
2696WindowsBiztonsági trükkök7. rész
2702WindowsWindows XP trükkök8. rész
2729WindowsWindows 2000 és XP tippek, trükkök9. rész
2757WindowsRegistry trükkök10. rész
2784WindowsTippek, trükkök11. rész
2829WindowsTippek, trükkök12. rész
2889WindowsWindows XP tippek13. rész
2909WindowsTippek Windows XP-hez14. rész
2919WindowsWindows tippek15. rész
2924WindowsWindows tippek16. rész
2963WindowsWindows tippek17. rész
2973WindowsWindows Tippek18. rész
2981WindowsWindows tippek19. rész
2990WindowsTippek-trükkök20. rész
3027WindowsIIS tippek21. rész
3034WindowsWindows XP tippek-trükkök22. rész
3088WindowsWindows 2000/XP tippek, trükkök23. rész
3133WindowsWindows XP tippcsokor24. rész
3140WindowsWindows XP tippek, trükkök25. rész
3152WindowsXP és IIS tippek - trükkök26. rész
3158WindowsWindows XP tippek, trükkök27. rész
3168WindowsTippek, trükkök28. rész
3170WindowsRegistry trükkök29. rész
3179WindowsTippek, trükkök30. rész
3197WindowsWindows XP tippek, trükkök31. rész
3205WindowsTippek, trükkök32. rész
3214WindowsTippek, trükkök33. rész
3223WindowsTippek, trükkök34. rész
3233WindowsTippek, trükkök35. rész
3271WindowsTippek, trükkök36. rész
3307WindowsTippek, trükkök37. rész
3370WindowsTippek, trükkök38. rész
3399WindowsTippek, trükkök39. rész
3510WindowsTippek, trükkök40. rész
3611WindowsHardverrel kapcsolatos tippek, trükkök41. rész
3668WindowsRegistry trükkök42. rész
3711WindowsTippek, trükkök43. rész
3771WindowsTippek, trükkök44. rész
3801WindowsTippek, trükkök45. rész
3831WindowsTippek, trükkök46. rész
3891WindowsTippek, trükkök47. rész
3921WindowsTippek, trükkök48. rész
3981WindowsTippek, trükkök49. rész
4041WindowsTippek, trükkök50. rész
4071WindowsTippek, trükkök51. rész
4151WindowsTippek, trükkök52. rész
4171C#Tippek, trükkök53. rész
4211WindowsTippek, trükkök54. rész
4251WindowsTippek, trükkök55. rész
4281WindowsTippek, trükkök56. rész
3589DelphiTippek, trükkök57. rész
3718DelphiTippek, trükkök58. rész


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