Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Delphi
Spuštění programu po startu Windows
delphi_onstart
30. března 2001, 00.00 | V tomto článku se podíváme problém, jak zařídit spuštění aplikace automaticky po startu Windows, a ukážeme si dvě funkce, které přesně tohle chování zařizují.
V tomto článku se podíváme na řešení problému, jak zařídit spuštění aplikace automaticky po startu Windows. Výsledkem naší snahy bude funkce, jejíž zavolání v programu zařídí právě toto chování, a funkce, která zase spouštění po startu zruší.
Takže jak na to?
Cesta prvníPrvní možností je, že program přidá svého zástupce do nabídky Start/Programy/Po spuštění. Tématem tvoření zástupců a jejich umisťování do různých systémových složek se zabývá článek Jak na zástupce, takže pokud chcete využít tuto možnost, doporučuji si ho přečíst. Snad jen dodám, že název položky v registru obsahující umístění menu Po spuštění je Startup..
Cesta druháDruhou (a lepší) možností, jak zajistit spuštění programu po startu Windows je speciální větev registrů HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run. V ní mohou být umístěny položky typu řetězec. Název položek je libovolný a hodnota určuje název spustitelného souboru + případné parametry. Při spouštění systému Windows se všechny položky v této větvi projdou a spustí se jednotlivé programy.
Měl bych asi upřesnit, že obdobná větev existuje i pod HKEY_LOCAL_MACHINE. Rozdíl je v tom, že programy nastavené pod HKEY_LOCAL_MACHINE se spustí při každém spuštění systému, kdežto programy v HKEY_CURRENT_USER jen pro toho uživatele, který byl přihlášen v okamžiku zápisu položky do registrů.
Tak, teď už samotný kód procedury, která zapíše program, který ji obsahuje, do registrů tak, aby byl spouštěn při startu systému. Pokud je parametr AllUsers nastaven na True, nastavení se zapíše pod HKEY_LOCAL_MACHINE, jinak bude zaneseno pod HKEY_CURRENT_USER. Mimochodem - do příkazu uses nezapomeňte před psaním procedury přidat unitu Registry.
|
Tak, zbývá ještě procedura na odebrání programu ze seznamu spouštěných:
|
Poznámka: Vedle větve registrů HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run existuje i větev HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce, která se od "klasického" Runu liší v tom, že po spuštění programu se odkaz na něj v této větvi smaže. Výsledkem je to, že program je spuštěn jen jedenkrát a to po prvním restartu systému od chvíle jeho záznamu do registrů. Toto chování najde využití u instalačních programů, které potřebují dokončit část instalace po restartu počítače. Typickým příkladem takového instalátoru je třeba instalace MS Internet Exploreru.
Není žádný problém výše uvedené procedury (resp. první z nich, proceduru na mazání v tomto případě nepotřebujeme) upravit na RunOnce a použít stejně dobře jako v případě Run.
Diskuse k článku
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007