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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QProcess. Выполнение консольных команд  (Прочитано 10417 раз)
darkhac
Гость
« : Октябрь 19, 2010, 14:00 »

Может кто-нибудь помочь?
   
Код:
console->start("dir"); 
Код:
	console->start("C:\windows\system32\cmd.exe",QStringList()<<" /K"<<" dir");
не выдает ничего
при этом тот-же ping выполняется и результат выводится

Кто нибудь знает как выполнять команды консоли? причем учитывая контекст(тоесть после выполнения к примеру cd Dir1 по вызову dir выводить именно ее содержимое)?
Записан
marbius
Гость
« Ответ #1 : Октябрь 19, 2010, 14:57 »

Код
C++ (Qt)
#include <QtCore/QCoreApplication>
#include <QProcess>
 
int main(int argc, char *argv[])
{
   QCoreApplication a(argc, argv);
 
   QProcess *console=new QProcess();
 
   console->startDetached("C:\\Windows\\System32\\cmd.exe",QStringList() << "/K" << "dir c:\\");
 
   return a.exec();
}
 

Так пойдет?
Записан
marbius
Гость
« Ответ #2 : Октябрь 19, 2010, 15:13 »

а то, что вы не видите вывода в Вашем примере вовсе не означает, что процесс не был запущен.
попробуйте запустить такой вариант:
Код
C++ (Qt)
#include <QtCore/QCoreApplication>
#include <QProcess>
#include <QDebug>
 
int main(int argc, char *argv[])
{
   QCoreApplication a(argc, argv);
 
   QProcess *console=new QProcess();
 
   console->start("C:\\Windows\\System32\\cmd.exe",QStringList() << "/K" << "dir c:\\");
   console->waitForReadyRead();
   qDebug() << console->readAllStandardOutput();
 
   return a.exec();
}
 
Записан
marbius
Гость
« Ответ #3 : Октябрь 19, 2010, 15:27 »

причем учитывая контекст(тоесть после выполнения к примеру cd Dir1 по вызову dir выводить именно ее содержимое)?

Вам необходимо также обратиться к справке по cmd.exe
Код:
help cmd

Код:
cmd.exe /K "cd d:\ && dir"
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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