Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
 Аватар для Игорь2001
20 / 20 / 10
Регистрация: 19.05.2015
Сообщений: 704

Не работает автозапуск

03.08.2015, 09:59. Показов 2224. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нашел в "полезных кодах" кусок, добавляющий программу в автозапуск. Сначала компилирую, запускаю... Не работает. Пишет ошибку. Потом увидел еще про права. Добавляю в свойствах запуск от имени админа - работает. Сразу после перезагрузки появилось окно программы, выполнило проверку(есть ли у кого-то денька), короче заработало. А потом уже ни разу при загрузке компа не появлялось. А если через ехешник включить, все работает. Вот код(в программе разбираться не надо, только кусок с автораном):
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
uses
  Microsoft.Win32, system;
 
const
  ApplicationName = 'PABC.NET AutoRun';
 
var
  i: byte;
  mas: array[1..100, 1..2] of string;
  f: pabcsystem.text;
 
 
 
var
  s, s1, s2: string;
  date: datetime;
 
 
begin
  var Reg := Registry.LocalMachine.CreateSubKey('Software\Microsoft\Windows\CurrentVersion\Run');
  Reg.SetValue(ApplicationName, GetEXEFileName);
  Reg.Close;
  
  assign(f, 'data.txt');
  reset(f);
  for i := 1 to 100 do 
  begin
    readln(f, s);
    s1 := copy(s, 1, 5);
    s2 := copy(s, 7, 20);
    mas[i, 1] := s1;
    mas[i, 2] := s2;
  end;
  close(f);
  for i := 1 to 100 do 
  begin
    date := datetime.today;
    s := date.ToShortDateString;
    s1 := copy(s, 1, 5);
    if mas[i, 1] = s1 then begin
      writeln('У кого-то денька');
      writeln('Этот кто-то...');
      sleep(1000);
      writeln(mas[i, 2]);
    end;
  end;
  writeln('Больше ничего не найдено...');
  readln;
  
end.
помогите!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.08.2015, 09:59
Ответы с готовыми решениями:

Не работает автозапуск
Установил себе винду ХР SP3 А у нее нет автозапуска:(. Ни на флэшки, ни на диски. В редакторе риэстра исправил "0" на...

Не работает автозапуск на 7
Уже не первая моя тема с этой проблемой, так никто и не помог!!!! У меня не работает автозапус с DVD/CD приводов.Раньше я думал что это...

Не работает автозапуск
HKEY hRootKey = HKEY_CURRENT_USER; const char szSubKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Run"; const char...

24
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
03.08.2015, 11:08
Цитата Сообщение от Игорь2001 Посмотреть сообщение
assign(f, 'data.txt');
А не пробовал абсолютный путь указывать?

А лучше (на первом этапе) без всякого файло?

А ещё лучше ручками попробовать прописать что-то по данному ключу реестра и попробовать!
Как мне кажется, LocalMachine — это не совсем тот раздел… ;–)
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
03.08.2015, 16:54
Цитата Сообщение от JuriiMW Посмотреть сообщение
Как мне кажется, LocalMachine — это не совсем тот раздел…
Сейчас проверил в своём реестре - у меня там записан автозапуск обновления 2GIS - работает.
Также есть способ - добавление ссылки на приложение или самого приложения в папку "Автозапуск".
Путь к ней можно программно получить так
Pascal
1
var path := Environment.GetFolderPath(Environment.SpecialFolder.Startup));
(это для данного пользователя, общий автозапуск - Environment.SpecialFolder.CommonStartup)
0
 Аватар для Игорь2001
20 / 20 / 10
Регистрация: 19.05.2015
Сообщений: 704
04.08.2015, 09:39  [ТС]
Как раз со связью с файлом все в порядке. А вот авторан... Подчеркну! НАШЕЛ кусок кода, такого мне пока и в жутком програмистском сне не снилось. Ну, если честно суть примерно понятна, но
Цитата Сообщение от tezaurismosis Посмотреть сообщение
var path := Environment.GetFolderPath(Environment.Sp ecialFolder.Startup));
куда его совать?
0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
04.08.2015, 10:26
Цитата Сообщение от Игорь2001 Посмотреть сообщение
куда его совать?
это путь куда Автозагрузка ссылается. туда или ярлык или файл скопируйте, только слэш в конце(если его нет) не забудьте добавить.
0
 Аватар для Игорь2001
20 / 20 / 10
Регистрация: 19.05.2015
Сообщений: 704
04.08.2015, 15:25  [ТС]
Цитата Сообщение от Игорь2001 Посмотреть сообщение
такого мне пока и в жутком програмистском сне не снилось
Вот в чем вся проблема. И что дальше ? После
Цитата Сообщение от Игорь2001 Посмотреть сообщение
var path := Environment.GetFolderPath(Environment.Sp ecialFolder.Startup));
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
04.08.2015, 18:33
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Цитата Сообщение от Игорь2001 Посмотреть сообщение
такого мне пока и в жутком програмистском сне не снилось
Да ну, вот кошмар нашли.
Для решения проблем в программировании есть два принципа (их больше, на самом деле): разделяй и властвуй и абстракция от деталей. Это, в объединении с поиском в гугле - страшная сила.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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.
0
 Аватар для Игорь2001
20 / 20 / 10
Регистрация: 19.05.2015
Сообщений: 704
05.08.2015, 09:46  [ТС]
Теперь вроде запускается, но в программе есть тхт файл, который она не находит. Если бы в авторан можно было вставить ярлык на установленную программу... Тем более их две, программы, одна авторан, вторая основная.
0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
05.08.2015, 13:08
путь в программе явно к текстовому файлу пропишите
0
 Аватар для Игорь2001
20 / 20 / 10
Регистрация: 19.05.2015
Сообщений: 704
07.08.2015, 08:04  [ТС]
Для этого надо знать, где у кого-то находиться программа, не все же в програм файлс кидают. Надо узнать директорию где программа и добавить туда имя файла. "узнать директорию где программа" поможете?
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
07.08.2015, 08:26
Игорь2001, дык!
У тебя же в самом первом варианте это было: GetEXEFileName — путь и имя программы…
Убери имя программы и останется путь!
0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
07.08.2015, 08:31
Цитата Сообщение от Игорь2001 Посмотреть сообщение
узнать директорию где программа
или так:
Pascal
1
ExtractFilePath(paramstr(0));
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
07.08.2015, 08:37
Игорь2001, добавлю к своему ответу:

Система даёт следующее если не заглядывать в помощь PABC:

Pascal
1
2
3
4
5
6
7
8
  var PathAndName := GetEXEFileName;
  WriteLn('Путь + имя = ', PathAndName);
  var OnlyPath := System.IO.Path.GetDirectoryName(PathAndName);
  WriteLn('Путь = ', OnlyPath);
  var OnlyName := System.IO.Path.GetFileName(PathAndName);
  WriteLn('Имя = ', OnlyName);
  var Extention := System.IO.Path.GetExtension(PathAndName);
  WriteLn('Расширение = ', Extention);
А можно заглянуть в помощь… Там целый раздел: „Справочник по языку“ — „Системные процедуры, …“ — „Функции для работы с именами файлов“
0
23 / 23 / 7
Регистрация: 03.11.2014
Сообщений: 325
07.08.2015, 09:36
в помощь заглядывать уже лень...

Чем больше помогают, тем больше рассчитывают на помощь
0
 Аватар для Игорь2001
20 / 20 / 10
Регистрация: 19.05.2015
Сообщений: 704
10.08.2015, 09:39  [ТС]
Цитата Сообщение от Nekromail2011 Посмотреть сообщение
Чем больше помогают, тем больше рассчитывают на помощь
Два ответа: в помощь не лень, я там и так много чего ищу, а то что там написано в справочнике, не очень понял (посмотрел уже после сообщений), а так:
Цитата Сообщение от JuriiMW Посмотреть сообщение
Pascal
1
2
3
4
5
6
7
8
 var PathAndName := GetEXEFileName;
 WriteLn('Путь + имя = ', PathAndName);
 var OnlyPath := System.IO.Path.GetDirectoryName(PathAndName);
 WriteLn('Путь = ', OnlyPath);
 var OnlyName := System.IO.Path.GetFileName(PathAndName);
 WriteLn('Имя = ', OnlyName);
 var Extention := System.IO.Path.GetExtension(PathAndName);
 WriteLn('Расширение = ', Extention);
все ясно. Еще одно спасибо

Добавлено через 17 часов 44 минуты
Все ок, но почему два окна???
0
 Аватар для Игорь2001
20 / 20 / 10
Регистрация: 19.05.2015
Сообщений: 704
12.08.2015, 11:48  [ТС]
Почему при запуске возникает 2 окна?!
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
12.08.2015, 11:51
Цитата Сообщение от Игорь2001 Посмотреть сообщение
Почему при запуске возникает 2 окна?!
Где?
0
 Аватар для Игорь2001
20 / 20 / 10
Регистрация: 19.05.2015
Сообщений: 704
13.08.2015, 10:56  [ТС]
При запуске компа
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
13.08.2015, 12:47
Цитата Сообщение от Игорь2001 Посмотреть сообщение
При запуске компа
Вы не забыли убрать приложение из другого места автозапуска? Видимо оно запускается из двух источников в двух экземплярах.
0
 Аватар для Игорь2001
20 / 20 / 10
Регистрация: 19.05.2015
Сообщений: 704
14.08.2015, 07:23  [ТС]
Пробовал, одно уберу, второе не работает, короче я нашел выход через try..finally. Буду тестировать!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.08.2015, 07:23
Помогаю со студенческими работами здесь

Не работает автозапуск
Короче сегодня переустановил Widows 7 и не работал автозапуск с виртуального диска а потом перезпгрузил комп и перестал работать...

Windows XP - не работает автозапуск
Купил год назад ноутбук. ноутбук samsung r428. 1.9гГц, 2Гб оперативки, 250 жесткий. установил чистую, лицензионную windows xp professional...

Не работает автозапуск дисков
В последнее время заметил, что у меня е работает автозапуск с дисков. При вставке в дисковод диска он не запускается сам. При щелчке ПКМ по...

Не работает автозапуск CD-ROM
В AVZ отключила автозапуск CD-ROM, потом отменила отключение, но автозапуск всё равно не работает. Как его включить?

Не работает автозапуск CD/DVD
Не работает автозапуск дисков.Подскажите ключ реестра для включения.Заранее спасибо!!!!!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru