Автозапуск программы в C#

Автозапуск программы в C#

  В этой статье мы напишем программу, которая будет добавлять себя в автозапуск Windows, с помощью реестра. Для этого нам понадобятся минимальные умения работы с реестром в C# и утилита regedit (Пуск->Выполнить->regedit), которая позволяет просматривать древовидную структуру реестра Windows.

  Чтобы программа запускалась при загрузке Windows, необходимо создать ключ реестра в ветке реестра "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun" названием ключа будет имя нашей программы, а значением - путь к исполняемому файлу программы.
  В C# за работу с реестром отвечает класс Microsoft.Win32.Registry, а за работу с ключами - Microsoft.Win32.RegistryKey. Перед тем как писать код, давайте создадим новый проект и положим на него 2 кнопки "Добавить" (будет создавать ключ в реестре) и "Удалить" (удаляет ключ). В обработчике для кнопки "Добавить" пишем:

  Microsoft.Win32.RegistryKey myKey =
Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWAREMicrosoftWindowsCurrentVersionRun", true);
  myKey.SetValue("MyProgram", Application.ExecutablePath);
  Теперь нажимаем кнопку "Добавить", запускаем regedit, добираемся до ветки Run и проверяем - если ключ создан, то можем перезагружать компьютер и наша программа запустится при загрузке Windows. Следует отметить что в качестве параметров функции SetValue первым является название ключа. А вот второй параметр - это путь к исполняемому файлу нашей программы.
  Часто возникает вопрос "Откуда запущена программа?", ответ довольно прост:
Application.ExecutablePath - возвращает путь и имя исполняемого файла.
Application.StartupPath - возвращает путь к исполняемому файлу.
  Вот в качестве второго параметра мы и передаем ExecutablePath, который сохраняет путь и имя нашей программы в реестре.
  Для удаления ключа, в обработчике нажатия кнопки, пишем такой несложный код:
  Microsoft.Win32.RegistryKey myKey =
Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWAREMicrosoftWindowsCurrentVersionRun", true);
  myKey.DeleteValue("MyProgram");
  Код достаточно прост. Стоит отметить что мы указываем наименование ключа, который нужно удалить из текущей ветки реестра. Опять-таки запускаем regedit и проверяем - ключ удалился. Для того чтобы обновить список ключей в regedit нажимаем F5..
  Вот такие несложные строки кода, позволяют программистам добавлять свои программы в автозапуск :)
  После прочтения этой статьи, вы знаете как сделать автозапуск программы.

Автор: Макагон Сергей, сайт: http://devoid.com.ua



Опубликовал admin
14 Ноя, Среда 2007г.



Программирование для чайников.