Не работает автозапуск - 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.

Объяснение кода листинга программы

  1. Устанавливаем путь к папке автозапуска с помощью Environment.GetFolderPath(Environment.SpecialFolder.Startup).
  2. Получаем информацию об исполняющемся приложении с помощью Assembly.GetExecutingAssembly().
  3. Проверяем, является ли объект exeAssembly равным nil, чтобы избежать ошибок.
  4. Объединяем путь к автозапуску и имя исполняемого файла с помощью Path.Combine().
  5. Проверяем, существует ли файл по пути назначения с помощью File.Exists().
  6. Если файл не существует, копируем его с помощью File.Copy().

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.214 из 5
Похожие ответы