Russian Qt Forum
Ноябрь 26, 2024, 18:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Не работает программа при запуске через Task Scheduler  (Прочитано 3451 раз)
eXeLe
Гость
« : Октябрь 03, 2013, 14:10 »

Написал небольшое консольное приложение для отправки письма по почте с данными из конфиг-файла.
За основу работы с SMTP взял данный проект: https://github.com/nicholassmith/Qt-SMTP
Ранее его же успешно использовал в другом своем проекте.
Далее возникла проблема - при ручном запуске программы все происходит без каких-либо проблем.
Создаю в винде в Task Scheduler новое событие с вызовом этой же программки, но при запуске она вылетает с ошибкой:
"Unhandled exception at 0x688e1cdd in MailSender.exe: 0xC0000005: Access violation reading location 0x00000000."
Никаких дополнительных аргументов программе не передается.
В чем может быть проблема?
Записан
eXeLe
Гость
« Ответ #1 : Октябрь 03, 2013, 14:25 »

Удалось понять косяк - увидел, что в консольном окошке, которое проскакивает при запуске из Щуделера - нет данных из конфига.
Перепроверил, если убрать конфиг - программа вылетает аналогичным образом.
Забил путь к конфигу в программе жестко, но решение это ужасное конечно.
Как можно сделать, чтоб считывание конфига было тем же:
    QSettings settings(QString("config.ini"), QSettings::IniFormat);
Но при этом не возникало ошибок при подобном запуске программы из щедулера?
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #2 : Октябрь 03, 2013, 14:55 »

Задать в шедулере рабочую папку не пробовали?  Смеющийся

Как можно сделать, чтоб считывание конфига было тем же:
    QSettings settings(QString("config.ini"), QSettings::IniFormat);
config.ini рядом с исполняемым файлом лежит?
Тогда так:
Код
C++ (Qt)
QSettings settings(QCoreApplication::applicationDirPath() + QDir::separator() + "config.ini", QSettings::IniFormat);
Записан
eXeLe
Гость
« Ответ #3 : Октябрь 03, 2013, 15:14 »

Задать в шедулере рабочую папку не пробовали?  Смеющийся
это, как я понимаю, опция "Start in"? Как то даже не обратил на нее внимания, никогда ее не использовал там =)

config.ini рядом с исполняемым файлом лежит?
Тогда так:
Код
C++ (Qt)
QSettings settings(QCoreApplication::applicationDirPath() + QDir::separator() + "config.ini", QSettings::IniFormat);
угу, работает, спасибо!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.236 секунд. Запросов: 23.