Кто нибудь знает способ с помощью qt выполнить команду в консоли и получить ее результат. причем по название наверно понятно что команды поступают в потоковом режиме. Причем если пришла команда cd Directory а после нее к примеру Dir то вывестись должно содержимое Directory
похоже, вопрос для винды. Поэтому
выполнить
cmd /?
darkhac,
воспользуйся поиском, пожалуйста.
о, кстати, в С есть функция
system(const char*);
попробуй так команду выполнить Думаю, в Qt должны выполнить то, что надо для ОС
kwisp, нет, не шучу. Но я не пробовал никогда
c QProcces вроде более менее разобрался. в итоге вполне себе выполняет ping и тп, но консольные команды не хочет(ниже представлен код). никто не подскажет? может быть возможно как-то открыть командную строку в фоновом режиме и отсылать ей?
console->start("cmd",QStringList()<<"/K"<<"dir");
пробелы перед параметрами поставь
console->start("cmd",QStringList()<<" /K"<<" dir");
darkhac, а если путь полностью указать
c:/windows/system32/cmd.exe
или
%CmdSpec%
Проблема решена. спасибо всем. если вдруг потом кто-то наткнется на эту тему то может ему поможет вот этот код
#include <QByteArray>
#include <QProcess>
#include <iostream>
#include <string>
using namespace std;
#pragma comment(lib, "qtmaind.lib")
#pragma comment(lib, "qtcored4.lib")
#pragma comment(lib, "qtguid4.lib")
int main(int argc,char** argv)
{
QProcess cmd;
cmd.start("cmd");
if (!cmd.waitForStarted())
return false;
cmd.waitForReadyRead();
QByteArray result = cmd.readAll();
cout << result.data();
string str;
cin >> str;
while(str != string("exit"))
{
cmd.write(str.c_str());
cmd.write("\n");
cmd.waitForReadyRead();
result = cmd.readAll();
cout << result.data();
cin >> str;
}
}
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)