Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Запуск консольного приложения через QProcess

Автор: jim1406 18.3.2009, 16:01

Вариант

void mainWindow::on_pushButton_clicked()
{  
   QProcess *myProcess = new QProcess(NULL);
   myProcess->start(ui->lineEdit->text());
}


Позволяет запустить любые оконные приложения, но не консольные. Как быть? Может есть более простой способ "передать вызов" ОС?

Заранее признателен!

Автор: kwisp 18.3.2009, 16:11

Цитата(jim1406 @ 18.3.2009, 16:01) *
но не консольные

очень странно. из чего такой вывод сделан?

П.С.
воспользуйся поиском по форуму. там есть темы такие же как и у тебя

Автор: jim1406 18.3.2009, 16:44

Цитата(kwisp @ 18.3.2009, 19:11) *
очень странно. из чего такой вывод сделан?


Попробовал - не получается. Прописываю в эдите оконные приложения - запускаются. А консольные - нет. Я пока разбираюсь под ОС Windows... Но ведь суть не должна меняться :scratch_one-s_head: Пробовал C:\WINDOWS\system32\cmd.exe - ноль эмоций. А тут же C:\WINDOWS\system32\charmap.exe - запускается.

Вообще, хотелось бы, чтоб ОС сама решала, что с командной строкой делать, которую я не знаю как средствами Qt ей передать :unknown:

Цитата(kwisp @ 18.3.2009, 19:11) *
воспользуйся поиском по форуму. там есть темы такие же как и у тебя


Пока не нашел, в том-то и дело. Можно ткнуть меня носом :)

Автор: kwisp 18.3.2009, 17:28

http://www.forum.crossplatform.ru/index.php?showtopic=2268&hl=QProcess
http://www.forum.crossplatform.ru/index.php?showtopic=2394&hl=QProcess
что если ввести QProcess в посике ничего не получаешь в результате?

Автор: SABROG 18.3.2009, 17:47

Консольные программы запускаются, но у них автоматом включается Pipe на вывод. Вызови 100 раз этот CMD и увидишь, что все они висят в процессах. В общем, если тебя не устраивается пайповый перехват, то запускай процесс так:

QProcess::startDetached("C:\\WINNT\\SYSTEM32\\CMD.EXE");

Автор: jim1406 18.3.2009, 20:55

Цитата(jim1406 @ 18.3.2009, 19:44) *
1
2
что если ввести QProcess в посике ничего не получаешь в результате?


Про поиск я, конечно, догадался. Только одно дело искать то, что забыл, а другое - не знал. ;)
Спасибо!

Цитата(kwisp @ 18.3.2009, 20:28) *
Консольные программы запускаются, но у них автоматом включается Pipe на вывод. Вызови 100 раз этот CMD и увидишь, что все они висят в процессах. В общем, если тебя не устраивается пайповый перехват, то запускай процесс так...


Елки-палки! Действительно... Спасибо!

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)