C# и автозагрузка из реестра.
Оказывается, несколько моих рабочих софтин тихо отвалились, пока пользователи молчали, как партизаны (обычное дело). Теперь я стал работать в Win 7, где не был вырван с корнем UAC и вся виндовая система безопасности. Мне-то хватало Comodo, а что-то действительно важное крутилось на Linux. Ну зато нашел баги. И приобрел опыт.
Я почему-то, если нужна была автозагрузка из реестра, пытался прописываться в
HKEY_LOCAL_MACHINE (Software\Microsoft\Windows\CurrentVersio n\Run), а для того, чтоб туда прописаться, нужны права администратора. Чтоб сделать правильно, надо прописываться не в
HKEY_LOCAL_MACHINE, а в HKEY_CURRENT_USER, т.е. в куст реестра, ответственный за настройки текущего пользователя, что и вообще правильно, и админских прав не надо.Написал простенький класс, отвечающий за автозагрузку через Реестр. Код достаточно тривиален, исходник маленький, думаю, можно разобраться без дополнительных пояснений.
1.
Autorun.Add() - добавляет программу в автозагрузку Реестра.2.
Autorun.Remove() - удаляет программу из автозагрузки Реестра.3.
Autorun.Check(bool FixPath) - проверяет статус, если FixPath установлен в True, то исправляет путь к приложению на новый, если приложение было ранее добавлено в автозагрузку, но местоположение экзешника изменилось.4.
Autorun.Switch () - изменяет автозапуск на противоположный (т.е., если программа в автозагрузке - удаляет, если нет - добавляет)На GitHub
Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2018/07/13/c-i-a