Я пишу графическое приложение для обертывания 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), поэтому я подозреваю, что это может быть причиной, но я действительно не знаю, что происходит внутри.
но это не так. как я сказал, точно такой же код работал, когда только изображение запускалось на 'CreateProcess()' изменено с 'wmic.exe' на' net.exe', 'cmd.exe' и т. д. –
@EdgarJamesluffternstat OK ... Тогда это системно-зависимая проблема, и, к сожалению, это кажется не так-то просто решить ... – Chen
пока проверен на XP32sp1/2/3, win7-64bit, win7-64bit-over-WOW64, windows8-64bit. Спасибо, в любом случае. –