Как отправить ввод в дочернее консольное приложение

Я создаю дочерний консольный процесс (zip.exe) из приложения MFC.

static TCHAR  s_atchZipTool[] = _T("\\tools\\zip.exe");
sArgZip.Format(_T("%s%s -e -r %s *.*"), GetAppPath(), s_atchZipTool, sFilePathName);
if( !CreateProcess(NULL, (LPTSTR)(LPCTSTR) sArgZip, NULL, NULL, 
                    FALSE, CREATE_NO_WINDOW, NULL, sFilesPath, &si, &pi) ) 
{
    return ::GetLastError();
}
else
{
    ::WaitForSingleObject( pi.hProcess, INFINITE );
}
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);

Итак, когда мне не нужно устанавливать пароль для заархивированного файла, все в порядке, но как я могу отправить этому процессу несколько сообщений в качестве ввода консоли? Параметр -e заставляет меня поставить еще 2 строки "Введите пароль", "Подтвердите пароль".


person Finchsize    schedule 08.10.2015    source источник
comment
Это большая работа, см. здесь. Я не знаю, что вы задумали, но, судя по запаху, я думаю, что это работа для Python, а не для C++/MFC.   -  person Jonas Byström    schedule 08.10.2015
comment
Вместо этого используйте 7zip. Это позволяет установить пароль шифрования через командную строку.   -  person Ari0nhh    schedule 08.10.2015
comment
@ Ari0nhh Это не ответ, в любом случае это решает проблему. Спасибо   -  person Finchsize    schedule 14.10.2015
comment
Возможный дубликат Импорт вложенных классов в пространство имен — C++   -  person Werner Henze    schedule 18.11.2015