Помогите разобраться с программой, умники, только и умеете херню под вопросом писать и за это баллы - Компьютерные вопросы
  • Чаты 4chT.com в телеграмм
    Наши группы в телеграмм

Вопрос Помогите разобраться с программой, умники, только и умеете херню под вопросом писать и за это баллы

Регистрация
1 Авг 2013
Сообщения
76
Репутация
0
Спасибо
0
Монет
0
Pipe C++. Написал программу чтобы упрпвлять cmd через нее но она не работает в чем может быть ошибка, дайте нормовский ответ уже давно с этим мучаюсь.

#include
#include
#include
#define BUFSIZE 4096
int main()
{
HANDLE g_hChildStd_IN_Rd;
HANDLE g_hChildStd_IN_Wr;
HANDLE g_hChildStd_OUT_Rd;
HANDLE g_hChildStd_OUT_Wr;
HANDLE hNamedPipe;
SECURITY_ATTRIBUTES saAttr;
saAttr.nLength = sizeof(SECURITY_ATTRIBUTES);
saAttr.bInheritHandle = TRUE;
saAttr.lpSecurityDescriptor = NULL;
if ( ! CreatePipe(&g_hChildStd_OUT_Rd, &g_hChildStd_OUT_Wr, &saAttr, 0) )
printf("StdoutRd CreatePipe");
if (! CreatePipe(&g_hChildStd_IN_Rd, &g_hChildStd_IN_Wr, &saAttr, 0))
printf("Stdin CreatePipe");
char szCmdline[]= "C:Windowssystem32cmd.exe";
PROCESS_INFORMATION piProcInfo;
STARTUPINFO siStartInfo;
siStartInfo.cb = sizeof(STARTUPINFO);
siStartInfo.hStdError = g_hChildStd_OUT_Wr;
siStartInfo.hStdOutput = g_hChildStd_OUT_Wr;
siStartInfo.hStdInput = g_hChildStd_IN_Rd;
siStartInfo.dwFlags |= STARTF_USESTDHANDLES;
if(!CreateProcess(NULL,szCmdline,NULL,NULL,TRUE,0,NULL,NULL,&siStartInfo,&piProcInfo))
printf("CreateProcess");
else
{
CloseHandle(piProcInfo.hProcess);
CloseHandle(piProcInfo.hThread);
}
DWORD cbWritten;
char szBuf[BUFSIZE];
DWORD cbRead;
ReadFile(hNamedPipe, szBuf, strlen(szBuf), &cbRead, NULL);
while(TRUE)
{
gets(szBuf);
WriteFile(hNamedPipe, szBuf, strlen(szBuf) + 1,&cbWritten, NULL);
ReadFile(hNamedPipe, szBuf,strlen(szBuf), &cbRead, NULL);
}
return 0;
}
 
Сверху Снизу