crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Autorun, Хочу, чтобы программа стартовала вместе с ОС
mishaga
  опции профиля:
сообщение 15.2.2009, 5:44
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 15.2.2009
Пользователь №: 552

Спасибо сказали: 0 раз(а)




Репутация:   0  


Мне нужно, чтобы программа стартовала вместе с ОС...
Как я понимаю, нужно сделать примерно так:

#ifdef Q_OS_WIN
  // тут код для Винды
#endif

#ifdef Q_OS_MAC
  // тут код для Мака
#endif

#ifdef Q_OS_X11
  // тут код для nix'ов
#endif


Если это единственный способ, то для Винды я ещё смогу написать через QSettings. Для Линуксов вряд ли. А вот для Маков ваще не в курсе как... Не сидел даже ни разу под Маком...
Поделитесь кодяном, у кого кокие догадки есть...

И если это не единственный способ, тогда скажите, какие ещё есть! =)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
mishaga
  опции профиля:
сообщение 16.5.2009, 9:23
Сообщение #2


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 15.2.2009
Пользователь №: 552

Спасибо сказали: 0 раз(а)




Репутация:   0  


Всё круто, в Виндах кодян работает.

Но вот тут недавно забавная вещь приключилась - моя программа через QProcess
запускает другую программу (тоже мою, я сам её писал). Так вот, если главная программа
стартовала с ОС, то вторую программу она не можут запустить. А если главную программу
запускать ручками, то вторая запускается за милую душу.
Чё ж делать?
Если программа запускается со стартом ОС, мне нужно, чтобы она могла запустить другую.
Помогите, у кого какие идеи есть!..

Вот мой кодян:

// это конструстор
Tray::Tray()
{
    WhereAmI = QCoreApplication::applicationDirPath(); // узнаём, в какой папке находится программа
    // переменная WhereAmI объявлена в h-файле (тип - QString)
    ...
    connect( &processBOB, SIGNAL(error(QProcess::ProcessError)), this, SLOT(error(QProcess::ProcessError)) );
    // error - моя функция, описана ниже
    ...
    execBOB( true ); // моя функция, описана ниже
}



// это функция execBOB();
void Tray::execBOB(bool args)
{
    QString st = "";
    if ( args ) st = "-r";
    processBOB.start( WhereAmI + "/programs/Base_of_Birthdays" + getSuffix(), QStringList() << st );
    // если args == true, передаём аргумент -r
    // если false, передаём пустую строку параметров (т.е., не передаём параметры)
}


// это функция error(), которая вызывается, когда processBOB даёт сбои
void Tray::error(QProcess::ProcessError error)
{
    QString ErrorText = "";
    switch (error)
    {
        case QProcess::FailedToStart    : ErrorText = "Failed to start";    break;
        case QProcess::Crashed            : ErrorText = "Crached";            break;
        case QProcess::Timedout            : ErrorText = "Timedout";            break;
        case QProcess::WriteError        : ErrorText = "Write error";        break;
        case QProcess::ReadError        : ErrorText = "Read error";            break;
        default /* UnknownError */        : ErrorText = "Unknown error";        break;
    }
    trayIcon->showMessage("Error", ErrorText, QSystemTrayIcon::Critical, 3000);
}


Так вот, у меня, если программа стартует с ОС, появляется ошибка "Crached"
А если запускать ручками, всё работает отлично
Помогите! Это моя ВКР, её уже сдавать давно пора!.. =)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- mishaga   Autorun   15.2.2009, 5:44
- - ViGOur   Цитата(mishaga @ 15.2.2009, 5:44) Для Лин...   15.2.2009, 12:44
- - Litkevich Yuriy   Цитата(mishaga @ 15.2.2009, 8:44) И если ...   15.2.2009, 13:37
- - mishaga   Хех... Это круто, что есть такой пакет... Где б мн...   16.2.2009, 7:13
- - Litkevich Yuriy   Цитата(mishaga @ 16.2.2009, 10:13) Скачал...   16.2.2009, 7:42
- - panter_dsd   А нах такие заморочки с демонами??? В винде делаеш...   16.2.2009, 19:50
- - ViGOur   Цитата(panter_dsd @ 16.2.2009, 19:50) В Л...   16.2.2009, 20:08
- - panter_dsd   Использование демонов тоже не вариант: 1. Нет веро...   16.2.2009, 20:21
- - edwardoid   ну извините, обыюно человеку у которого нет прав р...   17.2.2009, 0:28
- - Константин   Цитата(edwardoid @ 17.2.2009, 0:28) ну из...   17.2.2009, 2:33
- - mishaga   Всё круто, в Виндах кодян работает. Но вот тут не...   16.5.2009, 9:23
- - Litkevich Yuriy   Цитата(mishaga @ 16.5.2009, 13:23) если п...   16.5.2009, 12:12
|- - mishaga   Цитата(Litkevich Yuriy @ 16.5.2009, 12:12...   18.5.2009, 10:09
- - Авварон   Цитата(mishaga @ 15.2.2009, 6:44) А вот д...   16.5.2009, 17:16
- - molchanoviv   Дык рабочий каталог если не ошибаюсь будет систем3...   18.5.2009, 19:51
- - mishaga   Цитата(molchanoviv @ 18.5.2009, 19:51) Ды...   19.5.2009, 14:00


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


17 чел. читают эту тему (гостей: 17, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.12.2024, 16:11