Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Jeka38irk от Январь 28, 2016, 16:32



Название: как сделать скриншот в консоле и запустить его через crontab
Отправлено: 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 не делает но в логах пишет что задание запущено
в чем может быть причина???
заранее благодарю!!


Название: Re: как сделать скриншот в консоле и запустить его через crontab
Отправлено: maint от Январь 28, 2016, 17:13
потому что при запуске cron терминала нет и не может быть.


Название: Re: как сделать скриншот в консоле и запустить его через crontab
Отправлено: Jeka38irk от Январь 28, 2016, 18:47
потому что при запуске cron терминала нет и не может быть.
как тогда запустить ???


Название: Re: как сделать скриншот в консоле и запустить его через crontab
Отправлено: Alex Custov от Январь 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, я не помню как это делается.


Название: Re: как сделать скриншот в консоле и запустить его через crontab
Отправлено: Jeka38irk от Январь 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 пишет что задание запущено
как быть ????