Вопрос №1: нужно запустить процесс, предварительно записав ему в STDIN некоторые данные, получить из его STDOUT результат, ну и использовать их в своей программе. Накидал частично работающий код, дальше тупичек. Нужна ваша помощь.
Слот из программы, пока просто вызывается кликом педали на форме:
void MainWindow::SlotRun()
{
QProcess *P = new QProcess();
// как записать процессу в его STDIN пару текстовых строк???
P->setReadChannelMode(QProcess::MergedChannels);
P->start(tr("cmd.exe"),QStringList() << tr("/c") << QCoreApplication::applicationDirPath()+"/StartHidden.cmd" << tr("Argument"));
P->waitForFinished();
QTextCodec *Cp866 = QTextCodec::codecForName("IBM 866");
qDebug() << Cp866->toUnicode(P->readAllStandardOutput());
}
Данный код вызывает, как пример, StartHidden.cmd:
@echo off
sort
ping 192.168.1.2
echo Result: %1
Естественно, если я sort не закомментирую - вызов зависает. А мне нужно чтобы sort отсортировал переданные ему строки.
Вопрос №2:
QTextCodec *Cp866 = QTextCodec::codecForName("IBM 866");
Программа работает в UTF-8, а как узнать в какой кодировке работает консольное приложение?