Не работает автозапуск - PascalABC.NET
Формулировка задачи:
Нашел в "полезных кодах" кусок, добавляющий программу в автозапуск. Сначала компилирую, запускаю... Не работает. Пишет ошибку. Потом увидел еще про права. Добавляю в свойствах запуск от имени админа - работает. Сразу после перезагрузки появилось окно программы, выполнило проверку(есть ли у кого-то денька), короче заработало. А потом уже ни разу при загрузке компа не появлялось. А если через ехешник включить, все работает. Вот код(в программе разбираться не надо, только кусок с автораном):
помогите!
Решение задачи: «Не работает автозапуск»
textual
Листинг программы
uses System, System.IO, System.Reflection; begin // Путь к папке автозапуска var autorunPath := Environment.GetFolderPath(Environment.SpecialFolder.Startup); // Этот объект представляет исполняющееся приложение var exeAssembly := Assembly.GetExecutingAssembly(); // Он может вернуть null при определённых обстоятельствах if not (exeAssembly = nil) then begin; // Путь назначения - объединяем путь к автозапуску var destPath := Path.Combine(autorunPath, // и имя исполняемого файла Path.GetFileName(exeAssembly.Location)); // Если файл уже существует, снова его копировать не нужно if &File.Exists(destPath) = false then begin; &File.Copy(exeAssembly.Location, destPath); end; end; end.
Объяснение кода листинга программы
- Устанавливаем путь к папке автозапуска с помощью
Environment.GetFolderPath(Environment.SpecialFolder.Startup)
. - Получаем информацию об исполняющемся приложении с помощью
Assembly.GetExecutingAssembly()
. - Проверяем, является ли объект
exeAssembly
равнымnil
, чтобы избежать ошибок. - Объединяем путь к автозапуску и имя исполняемого файла с помощью
Path.Combine()
. - Проверяем, существует ли файл по пути назначения с помощью
File.Exists()
. - Если файл не существует, копируем его с помощью
File.Copy()
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д