Аватар для kolay_ne
16 / 18 / 11
Регистрация: 07.03.2016
Сообщений: 362

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

16.07.2017, 17:32. Показов 3899. Ответов 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,059
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
13018 / 7584 / 1660
Регистрация: 25.05.2015
Сообщений: 23,050
Записей в блоге: 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
13018 / 7584 / 1660
Регистрация: 25.05.2015
Сообщений: 23,050
Записей в блоге: 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,059
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru