Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Danila_Bagrofff от Сентябрь 10, 2010, 16:30



Название: Запустить сторонний процесс
Отправлено: Danila_Bagrofff от Сентябрь 10, 2010, 16:30
Что-то или я туплю.. или что-то изменилось... но как раньше запустить не получается...

Код:
QString program = "C:\Program Files (x86)\XML Notepad 2007\XmlNotepad.exe";
QProcess *myProcess = new QProcess(this);
myProcess->start(program);

Раньше вообще вроде CreateProcess был... сейчас что-то этот код нифига не запускает... что-то я подзабыл кутю.. =)


Название: Re: Запустить сторонний процесс
Отправлено: merke от Сентябрь 10, 2010, 16:36
Элементарно Ватсон)))

Смотри:
Код:
QString program = "C:\\Program Files (x86)\\XML Notepad 2007\\XmlNotepad.exe";
QProcess *myProcess = new QProcess(this);
myProcess->start(program);
Вуаля)))))


Название: Re: Запустить сторонний процесс
Отправлено: Danila_Bagrofff от Сентябрь 10, 2010, 16:49
что-то нема...  :-\

А ведь раньше было: CreateProcess, да?


Название: Re: Запустить сторонний процесс
Отправлено: merke от Сентябрь 10, 2010, 16:54
У меня всё сработало, может путь неверно задан? я просто заменил "\" на "\\" а лучше делать "/"


Название: Re: Запустить сторонний процесс
Отправлено: lit-uriy от Сентябрь 10, 2010, 19:04
>>А ведь раньше было: CreateProcess, да?
CreateProcess в Qt? или в ВинАПИ?


Название: Re: Запустить сторонний процесс
Отправлено: Danila_Bagrofff от Октябрь 06, 2010, 09:14
Народ, а что я делаю не так. Хочу вывести результат консольного приложения в файл, а что-то не получается...
Код:

Код:
QStringList args;
args  << "./certutil.exe -store -user my > cert.txt";
myProcess->startDetached("cmd", args);

и

так пробовал:
Код:
QString program = "certutil -store -user my > cert.txt";
myProcess->startDetached(program);

На выходе не получается файл с необходимымм данными...

как правильно заставить перенаправить вывод из командной строки в файл?

Может, это можно как-то средствами qt сделать вообще?


Название: Re: Запустить сторонний процесс
Отправлено: crossly от Октябрь 06, 2010, 15:43
перенаправление ввода/вывода так же как и пайпы это плющки консоли... QProcess с ними ничего не делает... читай из процесса и пиши в файл...


Название: Re: Запустить сторонний процесс
Отправлено: Danila_Bagrofff от Октябрь 07, 2010, 10:12
Да видимо прикол именно в винде в семерке....

потому как даже через proc.setStandardOutputFile ( "./cert.txt", QIODevice::Append); не работает =)

Пришлось сделать через батник =)

Либо связано с тем, что запуск процессов идет через startDetached...


Название: Re: Запустить сторонний процесс
Отправлено: bvn13 от Октябрь 07, 2010, 10:28
а вот тут вроде как полностью код: http://www.prog.org.ru/topic_13703_0.html (http://www.prog.org.ru/topic_13703_0.html)