Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
blv
0 / 0 / 0
Регистрация: 05.02.2011
Сообщений: 4
0

Перенаправление стандартных потоков ввода/вывода для внешней программы

15.02.2011, 19:43. Просмотров 1885. Ответов 0
Метки (Все метки)

Я вот где-то прочитал как перенаправить стандартные потоки ввода/вывода на внешнюю программу в дос. Переделал код под winapi, но не работает. Прошу вас помочь. Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <windows.h>
#include <stdio.h>
#include <string.h>
 
#define STD_IN      0
#define STD_OUT     1
 
#define PIPESIZE    4096
 
HANDLE hPipeIn, hPipeOut;
HANDLE sInHandle, sOutHandle;
HANDLE nInHandle, nOutHandle;
 
char buf [PIPESIZE];
 
void check (char *progName, char *input, char *output)
{
    DuplicateHandle(nInHandle, &sInHandle, NULL, NULL, NULL, NULL, NULL);
    DuplicateHandle(nOutHandle, &sOutHandle, NULL, NULL, NULL, NULL, NULL);
    CreatePipe(&hPipeIn, &hPipeOut, NULL, PIPESIZE);
    DuplicateHandle(hPipeIn, nInHandle, NULL, NULL, NULL, NULL, NULL);
    DuplicateHandle(hPipeOut, nOutHandle, NULL, NULL, NULL, NULL, NULL);
    nInHandle=hPipeIn;
    nOutHandle=hPipeOut;
    strcpy(buf, "dir\nexit\n");
    unsigned long btWrited;
    WriteConsole(hPipeOut, buf, strlen(buf), &btWrited, NULL);
    WriteConsole(sOutHandle, input, strlen(input), &btWrited, NULL);
    printf("Eta stroka ne vivoditsya na zapuskayemuyu programmu!!!\n");
    system(progName);
    return;
}
 
int main (void)
{
    check("cmd.exe", "cmd\n", NULL);
    return 0;
}
Прошу помочь.
Прочитал: http://ru2.halfos.ru/rdm2/articles/dupstd.html

Вернуться к обсуждению:
Перенаправление стандартных потоков ввода/вывода для внешней программы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2011, 19:43
Готовые ответы и решения:

Перехват ввода-вывода другой программы
Имеется игровой сервер, запускается ввиде консоли. В частности, сервер игры CS...

C++ разработка программы для ввода информации
Разработать программу для ввода информации о продажах торговой фирмы за...

Узнать о закрытии внешней программы
Я запускаю внешнюю программу при помощи ShellExecute. Как узнать, что внешняя...

Доступ к компонентам внешней программы
Всем привет, мне надо обратиться к внешней программе(это я умею) и добраться в...

Перехватить событие из внешней программы
Подскажите где можно подробно почитать про события (по русски). Суть вопроса...

0
Другие темы раздела
C++ Написать приложение для управления программными проектами http://www.cyberforum.ru/cpp/thread242976.html
4. Приложение для управления программными проектами Вся информация приложения хранится в трех файлах: – работники (идентификатор работника; фамилия; специальность; опыт работы) – проекты...
C++ Библиотека для работы с изображениями Я решил попробовать написать программу для распознавания изображений, а если быть точнее - цифр (база MNIST). Почитал что пишут разные люди по этой теме и решил, что чем выбирать абы как и что - надо... http://www.cyberforum.ru/cpp/thread242859.html
какой язык программирования лучше всего подходит для новичка? C++
не подскажите какой язык программирования лучше всего подходит для новичка?
C++ get_IsSupportedEnvironment - VARIANT_FALSE
Столкнулся с проблеммой IDiscMaster2::get_IsSupportedEnvironment возвращает VARIANT_FALSE. Я читал эту статью http://msdn.microsoft.com/en-us/library/aa832660(v=vs.85).aspx насколько понял,...
C++ Прямой доступ к видео памяти http://www.cyberforum.ru/cpp/thread241566.html
Здравствуйте, подскажите как организовать прямой доступ к видео памяти на современно VGA/DVI видео адаптере. В Книги Шилдта есть указания как сделать это,но на старых видео адаптерах. Там указанно...
C++ Цвет текстового курсора Можно ли в ДОС-программе изменить цвет текстового курсора ? Все поиски дали только управление его формой (через прерывание 010H) подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru