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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: как сделать скриншот в консоле и запустить его через crontab  (Прочитано 2521 раз)
Jeka38irk
Гость
« : Январь 28, 2016, 16:32 »

Добрый день!!
как то так. необходимо сделать консольное приложение которое могло бы сделать скриншот рабочего стола через определенное время (точнее через crontab).

Код:
#include <QtGui>

int main (int argc, char *argv[])
{
       QGuiAppplication a(argc,argv);
       QScreen *screen = QGuiAppplication::primaryScreen();
       QPixmap inPixmap = screen->grabWindow(0);
       inPixmap.save("/home/user/screen.jpg","jpg");
       
       return 0;
}
     
Скриншот через терминал делает но когда ставлю задание в cron не делает но в логах пишет что задание запущено
в чем может быть причина???
заранее благодарю!!
Записан
maint
Гость
« Ответ #1 : Январь 28, 2016, 17:13 »

потому что при запуске cron терминала нет и не может быть.
Записан
Jeka38irk
Гость
« Ответ #2 : Январь 28, 2016, 18:47 »

потому что при запуске cron терминала нет и не может быть.
как тогда запустить Непонимающий
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #3 : Январь 28, 2016, 20:56 »

Так работает?

Код:
#include <QtGui>

int main (int argc, char *argv[])
{
       qsetenv("DISPLAY", ":0");

       QGuiAppplication a(argc,argv);
       QScreen *screen = QGuiAppplication::primaryScreen();
       QPixmap inPixmap = screen->grabWindow(0);
       inPixmap.save("/home/user/screen.jpg","jpg");
       
       return 0;
}

Если да, то нужно DISPLAY отсюда убрать, и задавать его в crontab, я не помню как это делается.
Записан
Jeka38irk
Гость
« Ответ #4 : Январь 29, 2016, 04:21 »

не помогло
Код:
qgetenv("DISPLAY", ":0");
пробовал так еще
Код:
#!/bin/bash
export DISPLAY=:0
/home/user/build-run-Qt_5_5_1-Debug/run
для проверки добавил еще создание файла
Код:
    QFile mfile("/home/user/MyFile.txt");
    mfile.open(QIODevice::WriteOnly);
    mfile.write("test1");
    mfile.close();

файл создается если   QCoreApplication app(argc, argv);
но скрин не делает. так как  там QGuiApplication
если QGuiApplication app(argc, argv);
то проект через cron не выполняется
ни файла ни скрина в логах cron пишет что задание запущено
как быть Непонимающий?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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