Показать сообщение отдельно

  #2  
Старый 20.04.2009, 15:41
_nic
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
С нами: 10535289

Репутация: 107


По умолчанию

Подскажите какая тут ошибка
Код:
main()
{
HANDLE hpR1,hpR2,hpW1,hpW2;
DWORD readsz,rb,wb;
char buff[1024*5];
char *buf=new char[(1024*1024)*4];
SECURITY_ATTRIBUTES sec =
{
(DWORD)sizeof(SECURITY_ATTRIBUTES), NULL, TRUE
};
STARTUPINFO sInfo;
PROCESS_INFORMATION pInfo;
CreatePipe(&hpR1,&hpW1,&sec,0);
CreatePipe(&hpR2,&hpW2,&sec,0);
memset(&sInfo, 0, sizeof(sInfo));
memset(&pInfo, 0, sizeof(pInfo));
sInfo.cb=sizeof (STARTUPINFO);
sInfo.dwFlags=STARTF_USESHOWWINDOW+STARTF_USESTDHANDLES;
sInfo.wShowWindow=SW_HIDE;
sInfo.hStdInput = hpR2;
sInfo.hStdOutput = hpW1;
sInfo.hStdError = hpW1;
CreateProcess(NULL,"cmd",&sec,&sec,true,0,NULL,NULL,&sInfo,&pInfo);
for(;;)
{
memset(buf,NULL,strlen(buf));
for(;;)
{
Sleep(300);
PeekNamedPipe(hpR1,NULL,NULL,NULL,&readsz,NULL);
memset(buff,NULL,(1024)*5);
if(readsz==0){break;}
ReadFile(hpR1,buff,(1024)*5,&rb,0);
strcat(buf,buff);
}//
printf("%s",buf);
memset(buf,NULL,strlen(buf));
cin>>buf;strcat(buf,"\n");
WriteFile(hpW2,buf,strlen(buf),&wb,0);
if(strcmp(buf,"exit\n")==0){break;}
}
delete []buf;
CloseHandle(hpR1);CloseHandle(hpR2);CloseHandle(hpW1);CloseHandle(hpW2);
}
Неполучается выполнять неодиночные команды с доп.параметрами
Цитата:
C:\>cd windows
cd
C:\

C:\>windows
"windows" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

C:\>
Голову ломаю ,немогу понять что не так
 
Ответить с цитированием