Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
 Аватар для kolay_ne
16 / 18 / 11
Регистрация: 07.03.2016
Сообщений: 362

Программа неправильно работает при запуске через Планировщик Заданий

16.07.2017, 17:32. Показов 3988. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Это тоже тема, которая могла оказаться в разделе Windows, но, мне кажется, больше она подходит суда. Есть код. При простом запуске программы (от имени администратора) все работает прекрасно. Если же он запускается автозапуском с помощью планировщика заданий (с наивысшими правами), происходит ошибка в программе на промежутке:
Pascal
1
2
3
4
5
6
        var f: text;
        Assign(f, 'C:\ProgramData\WH\Alert.txt');
        Rewrite(f);
        write(f, 'Encoding is wrong!');
        Close(f);
        execute('wrong.exe');
Если это важно, этот фрагмент кода находится внутри цикла, который внутри процедуры. Ошибка происходит на первой итерации цикла. В обычной отладке (с паскалем запущенном от имени админа) все работает так же, как при простом запуске от имени админа... Что делать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.07.2017, 17:32
Ответы с готовыми решениями:

Вывод в файл результата выполнения команды при запуске пакетного файла через Планировщик заданий
Хочу вывести результат выполнения команды w32tm /stripchart /computer:ntphost /samples:1 /dataonly в файл для последующей обработки. ...

Планировщик заданий - при запуске задания ошибка 0x80070534
Планировщик запускается от системы настройки службы вроде дефолтные служба сначала не запускалась, но после правки ключа реестра...

Не работает программа при запуске через NetBeans и Eclipse
При запуске программы через NetBeans и Eclipse выскакивает окошко "Прекращена работа программы...". Тем не менее, через Dev C++,...

7
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
17.07.2017, 07:05
Во-первых, все эти строки с первой по пятую можно с лёгкостью заменить на одну команду „WriteAllText“.
А во-вторых, на какой именно строчке валится код?
Наверное на последней.
В таком случае, попробуйте указать абсолютный путь к запускаемому файлу.
1
 Аватар для kolay_ne
16 / 18 / 11
Регистрация: 07.03.2016
Сообщений: 362
17.07.2017, 17:12  [ТС]
Цитата Сообщение от JuriiMW Посмотреть сообщение
на какой именно строчке валится код?
Я не знаю, в том то и дело...
Цитата Сообщение от JuriiMW Посмотреть сообщение
попробуйте указать абсолютный путь к запускаемому файлу
Но почему работает при запуске руками, но не работает автозапуском?
0
Эксперт .NET
 Аватар для Rius
13114 / 7675 / 1674
Регистрация: 25.05.2015
Сообщений: 23,410
Записей в блоге: 14
17.07.2017, 17:42
Цитата Сообщение от kolay_ne Посмотреть сообщение
Но почему работает при запуске руками, но не работает автозапуском?
Потому что уже сколько раз твердили - не используйте current directory, если не понимаете как оно работает...
Руками - у вас current directory там, где надо. Автозапуском - где-то в системных каталогах винды.
Вы не указываете абсолютный путь к файлу, поэтому он ищется по алгоритму, включающему current directory и перечисленное в %PATH%, то есть где-то совсем не там, где вы наивно предполагали.

Надо вычислять программно путь к каталогу приложения и программно же суммировать его с нужными частями пути, до получения абсолютного пути к файлам.
3
 Аватар для kolay_ne
16 / 18 / 11
Регистрация: 07.03.2016
Сообщений: 362
17.07.2017, 22:08  [ТС]
Rius, JuriiMW, Ок, допустим. Тогда второй вопрос. Автозапуск из папки C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup ошибка (в другой программе) возникает на промежутке кода:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  OnClose := closing;
  MaximizeWindow;
  var x,y: integer;
  x := WindowWidth;
  y := WindowHeight;
  if Process.GetProcesses.Count(p -> p.ProcessName = 'explorer') > 0 then
  begin
    var p := System.Diagnostics.Process.Start('taskkill', '-im explorer.exe -f');
  end;
  MainForm.TopMost := true;
  for j: integer := 1 to 7 do
  begin
    arr[j][1] := random(0, WindowWidth);
    arr[j][2] := random(0, WindowHeight);
  end;
  try
    o := Picture.Create('o.png');
    o.Load('o.png');
  except
    
  end;
0
Эксперт .NET
 Аватар для Rius
13114 / 7675 / 1674
Регистрация: 25.05.2015
Сообщений: 23,410
Записей в блоге: 14
18.07.2017, 06:14
Цитата Сообщение от kolay_ne Посмотреть сообщение
Тогда второй вопрос. Автозапуск из папки C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup ошибка (в другой программе) возникает на промежутке кода:
Ответ см. выше.
Вы полагаете, что программа - телепат и сама догадается, что вы от неё хотите. А это не так.
0
 Аватар для kolay_ne
16 / 18 / 11
Регистрация: 07.03.2016
Сообщений: 362
18.07.2017, 08:35  [ТС]
Rius, Ой, простите, я не увидел там путь... Спасибо, простите
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
18.07.2017, 09:24
А ещё, люди придумали вести лог для тех процессов, которые нельзя отладить вручную:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure toLog(msg : String);
const fName = 'x:\mylog.wrk';
begin
  var t : Text;
  if System.IO.File.Exists(fName) then
    t := OpenAppend(fName)
  else
    t := OpenWrite(fName);
  WriteLn(t, String.Format('{0:d/M/yyyy HH:mm:ss} : {1}', System.DateTime.Now, msg));
  Close(t);
end;
 
begin
  toLog('Запуск программы.');
  toLog('Ждём 50 мс');
  Sleep(50);
  toLog('Ждём 500 мс');
  Sleep(500);
  toLog('Ждём 5000 мс');
  Sleep(5000);
  toLog('Всё! Приехали...');
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.07.2017, 09:24
Помогаю со студенческими работами здесь

Не работает планировщик заданий!
Не могу запустить его! Из за него и дефрагментация не работает и архивирование! В службах компа он не запускается,мутным воще всплывающее...

Невозможно открыть книгу Excell при запуске приложения через планировщик
Здравствуйте. Написал программу, которая считывает данные из файла Excell. При запуске приложения вручную все хорошо. Отрабатывает...

Не работает программа при запуске в Windows через командную строку
Дали задание скомпилить cmake под Linux. Там все получилось. Как доп.задание дали перенести и скомпилить cmake на windows через командную...

Не работает служба Планировщик заданий в Windows XP
Доброго времени суток, уважаемые форумчане. Потребовалось установить ОС на компьютер. Выбор пал на Windows XP SP3 сборка ZverDVD 2013...

Запуск скрипта через планировщик заданий
Доброго времени суток! Есть vbs-скрипт, который выполняет копирование файлов из одной папки в другую. Вторая папка находится на сетевом...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru