2013-09-29 4 views
0

Я пишу графическое приложение для обертывания wmic.exe, используя C++/win32api. при звонке:Выходной редирект для wmic.exe с использованием труб

CreateProcess(.., "wmic.exe" , ..) Я посылаю ручки для ввода и вывода труб, которые I'v открыли для этой цели, с которой я позже прочитал вывод (и записывать ввод в).

тот же код работал для любых других утилит командной строки Windows, которые я проверил (net.exe, tree.exe и т. Д.), Однако он не работает в случае wmic.exe. Я заметил, что wmic.exe использует некоторые функции семейства Console (http://msdn.microsoft.com/en-us/library/windows/desktop/ms686033(v=vs.85).aspx), поэтому я подозреваю, что это может быть причиной, но я действительно не знаю, что происходит внутри.

ответ

0

Должно работать. Вы можете попробовать использовать трубу в cmdwmic позвонить:

echo CPU | wmic >test.log,

и она работает на моем 64-битной Windows 8 компьютер.

+0

но это не так. как я сказал, точно такой же код работал, когда только изображение запускалось на 'CreateProcess()' изменено с 'wmic.exe' на' net.exe', 'cmd.exe' и т. д. –

+0

@EdgarJamesluffternstat OK ... Тогда это системно-зависимая проблема, и, к сожалению, это кажется не так-то просто решить ... – Chen

+0

пока проверен на XP32sp1/2/3, win7-64bit, win7-64bit-over-WOW64, windows8-64bit. Спасибо, в любом случае. –

 Смежные вопросы

  • Нет связанных вопросов^_^