Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.51/35: Рейтинг темы: голосов - 35, средняя оценка - 4.51
20 / 20 / 2
Регистрация: 28.11.2012
Сообщений: 365
1

Запуск из программы другой программы с параметрами

17.01.2013, 12:05. Просмотров 6560. Ответов 8
Метки нет (Все метки)

Исходные данные:
1)ОС Linux ubuntu, xubuntu;
2)Есть некоторая простенькая написанная программка;
3)Есть авиасимулятор (игра), который запускается с параметрами. Т.е. кроме замого файла программы в консоли еще можно прописать параметры (какой самолет, какой аэропорт и т.д. и т.п.)

Идея:
Создать в этой простенькой программе кнопку, к кнопке привязать функцию, которая:
1) Просто запускала бы авиасимулятор;
2) Можно было бы выбрать какие параметры добавлять.

Вопрос:
Как реализовать идею?

Как-то через QProcess?
Спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.01.2013, 12:05
Ответы с готовыми решениями:

Запуск внешней программы из другой программы
День добрый! Мне нужно запустить exeшник Hello world программы при компиляции другой программы....

[Emu8086] Запуск из программы другой программы
Доброе утро, форумчане! Задача следующая: Есть Emu8086. Нужно написать программу, которая...

Запуск программы только из другой программы
Здравствуйте уважаемые программисты, сегодня столкнулся с проблемой, естественно первым делом...

Запуск программы с параметрами
Как из Лотуса запустить внешнюю программу с пеердачей ей параметров? Спасибо !!

8
136 / 140 / 7
Регистрация: 22.08.2011
Сообщений: 484
17.01.2013, 12:34 2
Здравствуйте!
Может поможет команда system(); или её аналоги .
В неё помещайте путь и опцию(и), которые вам нужны
в виде простой строки. Формирование строки на ваше
усмотрение. Не знаю (проверте) нужно ли будет опции
писать через '-' после имени файла или же будет уже
готовая последовательность через ' '. Может поможет!
Удачи!

Добавлено через 3 минуты
Чуть не забыл = окончание строки сделайте в виде " &" = чтоб можно
было запускать несколько копий игры, иначе вернуться в свою прогу с
кнопочками после запуска игры не получиться = она будет занята, вроде!
0
Автор FAQ
2727 / 1423 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
17.01.2013, 12:41 3
да через QProcess
0
20 / 20 / 2
Регистрация: 28.11.2012
Сообщений: 365
17.01.2013, 15:30  [ТС] 4
Что то ни с system(), ни с QProcess не срабатывает.
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
.h
public slots:
    void startprogram();
.cpp
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    btn=new QPushButton("Start", this);
    vlayout = new QVBoxLayout(this);
    myprocess = new QProcess(parent);
    vlayout->addWidget(btn);
    setLayout(vlayout);
 
    connect(btn, SIGNAL(clicked()), this, SLOT(startprogram()));
}
void Widget::startprogram()
{
    QString program = "./home/aleksandr/sh run.sh";
    myprocess->start(program);
}
0
Автор FAQ
2727 / 1423 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
17.01.2013, 16:32 5
ну как то вот так:
C++ (Qt)
1
2
3
4
5
QProcess  *proc = new QProcess();
    connect(proc, SIGNAL(finished(int,QProcess::ExitStatus)), SLOT(procStop(int,QProcess::ExitStatus)));
    connect(proc, SIGNAL(started()), SLOT(procStart()));
    connect(proc, SIGNAL(readyRead()), SLOT(procOutput()));
    proc->start("name_program",QIODevice::ReadWrite);
слоты нужны для контроля что и как происходит c твоим запущеным приложением
хотя и не обязательны
1
Эксперт C
24915 / 15439 / 3270
Регистрация: 24.12.2010
Сообщений: 33,303
17.01.2013, 17:38 6
C
1
2
char *program = "./home/aleksandr/sh run.sh";
    system(program);
ИМХО, system требует параметра типа char *. Или в Qt это не так?
Можно и так попробовать
C++ (Qt)
1
2
QString program = "./home/aleksandr/sh run.sh";
    system(qPrintable(program));
1
136 / 140 / 7
Регистрация: 22.08.2011
Сообщений: 484
17.01.2013, 18:25 7
Уже и правильно расписали для слота онклик кнопки:
C++ (Qt)
1
system("путь &"); // здесь отследить = что далее не возможно
или через QProcess:
C++ (Qt)
1
2
3
 
QProcess P;                     // а тут есть возможности для проверок
P.startDetached("путь &");
Если не работает, проверяйте пути, опции и слоты кнопки!
Удачи!
1
20 / 20 / 2
Регистрация: 28.11.2012
Сообщений: 365
18.01.2013, 10:07  [ТС] 8
Да, спасибо всем. Сегодня с утра встал, написал и все получилось...
Еще вопрос:
А можно как-нибудь удаленно запускать программы (т.е. приложение запущено на одном пк, но оно может запускать программу на другом пк в локальной сети)?
0
80 / 69 / 9
Регистрация: 11.12.2009
Сообщений: 393
18.01.2013, 16:59 9
Возможно придётся писать программу своего рода сетевой клиент-сервер, наподобие как в примерах qt есть "network chat client", программка сетевой чат, в котором каждый компьютер является и сервером отправки и клиентом приёма текстовых сообщений.
Можно её переделать, чтобы был один главный компьютер с программкой которая будет по сети передавать команды другим клиентским программкам, на каком компьютере что запустить.
В принципе я думаю это реально, если принятые команды можно будет передать через QProcess в терминал. (QProcess не изучал, но думаю вскором времени тоже понадобится)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2013, 16:59

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Запуск программы с параметрами
Здравствуйте! У меня есть bat файл с таким содержанием: "E:\Download\GoGo.exe"...

Запуск программы с параметрами
Так-с. Не могу запустить g++ с параметром (ссылкой на файл). ShellExecute(Form4.Handle, 'open',...

Запуск программы с параметрами
В командной строке, запущенной из папки со скомпилированным проектом, при команде типа "prog.exe...

Запуск программы с параметрами
Здравствуйте. Не могу понять, почему команда не работает как надо, возможно, кто-то поймет, буду...

Запуск программы с параметрами
Все доброго времени суток. Постараюсь объяснить проблему как можно проще. Имеется некая...

Запуск программы с параметрами
Здравствуйте, хочу узнать, как написать программу, которую можно запускать с разными параметрами???...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.