Jak již bylo nadhozena v popisku článku, ukážeme si, jak nastavit spouštění naší aplikace po startu systému. Budeme to provádět přes registry. Vytvořte si rovnou nový projekt a pojďme programovat !
Pro práci s registry použijeme třídu RegistryKey z jmenného prostoru Microsoft.Win32. Dále budeme potřebovat adresu registru, který obsahuje adresy souborů spouštějících se po startu systému. Pravděpodobně bude adresa takováto :
SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run
Nyní už můžeme vytvořit instanci třídy, která s registrem bude pracovat.
string add = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
RegistryKey RegistryKey = Registry.CurrentUser.OpenSubKey(add, true);
Při spuštění aplikace bychom asi chtěli vědět, jestli už v registrech informace o tom, že se má naše aplikace spouštět při startu počítače, není. V naší aplikaci budeme spuštění při startu systému nastavovat pomocí zaškrtávacího pole, takže zdrojový kód pro proceduru Load našeho formuláře bude vypadat takto.
if (RegistryKey.GetValue(Application.ProductName) == null)
{
checkBox1.Checked = false;
}
else
{
checkBox1.Checked = true;
}
Pro nastavení nové hodnoty má třída RegistryKey metodu SetValue(string name, object value), kde první parametr je název aplikace(nebo obecně nějaký identifikátor) a druhý je adresa aplikace. Obecně potom můžeme použít kód níže.
RegistryKey.SetValue(Application.ProductName, Application.ExecutablePath.ToString());
Application.ProductName vrací název aplikace, který je nastavitelný v properties naší aplikace a Application.ExecutablePath je adresa spustitelného souboru, tj. např. C:\moje_aplikace.exe.
Vymazání hodnoty je jednodušší. Stačí jeden parametr a to název aplikace, který jsme udali jako první parametr metody SetValue().
RegistryKey.DeleteValue(Application.ProductName, false);
Vytvořte si událostní proceduru změny hodnoty zaškrtávacího tlačítka a vložte do ní kód níže. Ten zajistí samotné nastavování registrů.
if (checkBox1.Checked)
{
RegistryKey.SetValue(Application.ProductName, Application.ExecutablePath.ToString());
}
else
{
RegistryKey.DeleteValue(Application.ProductName, false);
}
A je to hotové ! Pokud si najdete editor registrů a příslušnou cestu, uvidíte tam svoji aplikaci.