Delphi - Programok automatikus indítása a rendszer indításakor

forráskód letöltése
A Windows Registry adatbázis megfelelő helyére történő bejegyzéssel elérhetjük azt, hogy a programunk minden indításkor automatikusan elinduljon, sőt ha arra van szükségünk, hogy csak egyszer induljon el ilyen módon, akkor azt is elérhetjük. Ha ilyen alkalmazást szeretnénk készíteni, akkor hasznos lehet számunkra egy olyan komponens, aminek segítségével ez a lehetőség nagyon egyszerűen elérhető. A mellékelt példaprogram megnyitása előtt az AutoRun.pas-ban lévő komponenst telepítenie kell a Delphi alá.

Ahhoz, hogy egy program automatikusan elinduljon a Windows indításakor, a Registry-ben a HKEY_LOCAL_MACHINE kulcs alatt a "Software\Microsoft\Windows\CurrentVersion\Run" címre be kell jegyeznünk egy sztringet, melynek tetszőleges neve lehet, az értéke pedig a futtatandó fájl neve elérési útvonallal, és az esetleges paraméterekkel együtt. Ha azt akarjuk elérni, hogy a program csak a következő indításkor induljon el, akkor a cím végén található "Run" helyett "RunOnce"-t kell megadni. Ekkor a Windows újraindításakor a program lefut, és azonnal törlődik is a bejegyzés a Registry-ből.

A komponens RegName property-jében adhatjuk meg a bejegyzés nevét, ami általában a futtatandó alkalmazás neve. Az ExeName property a futtatandó fájl neve az elérési útvonallal együtt, illetve ha szükséges, akkor paramétereket is megadhatunk. A RunMode property-ben állíthatjuk be, hogy a program minden indításkor (rmRunAlways), vagy csak a következő indításkor fusson le (rmRunOnce). A bejegyzés az Activate property igazra állításakor történik meg. Ha a fent említett property-k közül bármelyiket megváltoztatjuk, az Activate property értéke hamisra vált, és a bejegyzés törlődik a Registry-ből. Ehhez a property-hez nem tartozik változó, az aktuális értéket a Registered függvény segítségével kérdezi le.
A bejegyzést a komponens CreateRegistration, míg a bejegyzés törlését a RemoveRegistration metódusa végzi el.