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