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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Автозапуск приложений написанных в Qt  (Прочитано 3767 раз)
Witcher
Гость
« : Август 10, 2012, 13:24 »

В общем написал небольшую програмку, которая следит за тем подключена мышь или нет, и в зависимости от этого включает\выключает touchpad, выдавая уведомления при помощи notify-send.
Проблема состоит в том, что приложение запускается от двойного клика непосредственно по значку или из qtcreator и при этом прекрасно работает, но когда прописываю его в автозагрузку оно запускается, но не выполняется. процесс лишь весит в системе. Также приложение не запускается и из терминала, тоже чего-то ждет.

Код примерно такой:
Код:
#include "stdio.h"
#include "QProcess"

int main()
{
    QProcess* process = new QProcess();
    QString str,str1;

    while(true){
       process->start("sh run_script_qt_touchpad.sh");
        process->waitForFinished();
        str1=process->readAllStandardOutput();
        process->close();

///бла бла

sleep(2);
}

return 0;
}


Возможно я не знаю каких-то особенностей, либо неправильно организовал код. Подсткажите, в чем может быть проблема?
Записан
mutineer
Гость
« Ответ #1 : Август 10, 2012, 13:41 »

run_script_qt_touchpad.sh где находится?
Записан
Witcher
Гость
« Ответ #2 : Август 10, 2012, 13:43 »

рядом с приложением
Записан
mutineer
Гость
« Ответ #3 : Август 10, 2012, 13:45 »

При запуске из авторана текущая папка другая и приложение не может найти этот скрипт. Либо укажи полный путь к нему, либо положи его в /usr/bin. Ну или задай QProcess нужную текущую директорию
Записан
Witcher
Гость
« Ответ #4 : Август 10, 2012, 13:48 »

В /usr/bin ложил, результат нулевой. Указывая полный путь начинает работать. Благодарю, переделаю)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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