HANDLE hRead;
HANDLE hWrite;
STARTUPINFO stinfo;
PROCESS_INFORMATION prinfo;
if (CreatePipe(&hRead, &hWrite, NULL, <размер, 0-стандартный>));
stinfo.cb = sizeof(STARTUPINFO);
... //заполнить необходимые поля
stinfo.hStdInput = hRead;
stinfo.hStdOutput = hWrite;
stinfo.hStdError = hWrite;
// создаем процесс
if(CreateProcess("cmd.exe", "/C appname.exe", NULL, NULL, FALSE, 0, NULL, <working_dir>, &stinfo, &prinfo);
// делаем что нужно
} else {
// обрабатываем ошибку
}
} else {
// обрабатываем ошибку
}
Аналог PHP функции system()
Или это обычный ShellExecute cmd.exe?
Создаешь канал, затем прописываешь его в STARTUPINFO в CreateProcess(!).
Код:
ЗЫ. Вроде так :)
The system() function conforms to ISO/IEC 9899:1990 (``ISO C90'') and is expected to be IEEE Std 1003.2 (``POSIX.2'') compatible.
Код:
NAME
system -- pass a command to the shell
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <stdlib.h>
int
system(const char *string);
system -- pass a command to the shell
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <stdlib.h>
int
system(const char *string);
такое можно сотворить?
ну чтоб не одна команда, а (комманда->ответ;комманда->ответ)
как полноценное cmd.exe?
Думаю найдешь в инете не мало примеров на данную тему (Использование каналов для коммуникации с консольными приложениями).