Jak pracovat se startup prvky, jak je zjisťovat a jak je přidávat nebo mazat v C# ? To na netu skoro nejde najít ...
Když jsem to hledal, tak jsem našel jen práci s registry, ale ne se startupem. Možná jsem nehledal dobře, ale našel jsem jenom strom registrových klíčů pro startup.
Všechny programy, které se po startu spouštějí, jsou umísteny v klíčích registrů HKEY_LOCAL_MACHINE ( zkráceně HKLM )\Software\Microsoft\Windows\CurrentVersion\Run nebo RunOnce. Když tedy chceme se startup prvky libovolně pracovat, tak musíme manipulovat s tímto klíčem / i. A jak ? Jednoduše, pomocí třídy RegistryKey ze jmenného prostoru Microsoft.Win32.
Pokud chceme do startupu přidat nějaký program, není nic jednoduššího, než to udělat.
...
RegistryKey klic=Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",true); // otevře registrový klíč startup prvků s možností zápisu
klic.SetValue("Pokus",Environment.CurrentDirectory+"\\startup.exe"); // přidání prvku s názvem Pokus a hodnotou programu současného adresáře jménem startup.exe
...
Jak vidíte, přidávání do startupu je jednoduché. Mazání je ještě jednodušší :
A pokud chcete zjisťovat hodnotu všech klíčů ve startupu, tak taky můžete :
Console.WriteLine("Všechny startup prvky :");
string[] podPrvky=klic.GetValueNames(); // načtení prvků do pole
foreach(string prvek in podPrvky) // průchod polem
{
Console.Write("\tPrvek : "+prvek+"\n\t\t"+klic.GetValue(prvek)+"\n"); // výpis jednotlivých prvků
}
No a to je všechno, víc už ke práci se startupem v C# nepotřebujete.
Pro ilustraci, vše dohromady je v programu startup.exe, který spolu se zdrojovým kódem přikládám.