Егкишд Е Егкишд Регистрация 1 Авг 2013 Сообщения 80 Репутация 0 Спасибо 0 Монет 0 11 Июл 2016 #1 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; }
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; }
читер про Ч читер про Регистрация 4 Дек 2012 Сообщения 68 Репутация 0 Спасибо 0 Монет 0 11 Июл 2016 #2 Школу закончи сначала, и вопросы задавать научись или деньги плати. Позитивный голос 0
Absent A Absent Регистрация 28 Дек 2013 Сообщения 72 Репутация 0 Спасибо 0 Монет 0 11 Июл 2016 #3 ПНХ Позитивный голос 0