其他语言

本类阅读TOP10

·基于Solaris 开发环境的整体构思
·使用AutoMake轻松生成Makefile
·BCB数据库图像保存技术
·GNU中的Makefile
·射频芯片nRF401天线设计的分析
·iframe 的自适应高度
·BCB之Socket通信
·软件企业如何实施CMM
·入门系列--OpenGL最简单的入门
·WIN95中日志钩子(JournalRecord Hook)的使用

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
重定向控制台程序的输入输出

作者:未知 来源:月光软件站 加入时间:2005-5-13 月光软件站

// 重定向控制台程序的输入输出主程序代码 #include "Windows.h" #include "stdio.h" void main() { SECURITY_ATTRIBUTES sa,sa2; HANDLE hInputRead,hInputWrite; HANDLE hOutputRead,hOutputWrite; sa.nLength = sizeof(SECURITY_ATTRIBUTES); sa.lpSecurityDescriptor = NULL; sa.bInheritHandle = TRUE; if (!CreatePipe(&hOutputRead,&hOutputWrite,&sa,0)) { printf("Error On CreatePipe1"); return; } sa2.nLength = sizeof(SECURITY_ATTRIBUTES); sa2.lpSecurityDescriptor = NULL; sa2.bInheritHandle = TRUE; if (!CreatePipe(&hInputRead,&hInputWrite,&sa2,0)) { printf("Error On CreatePipe2"); return; } STARTUPINFO si; PROCESS_INFORMATION pi; si.cb = sizeof(STARTUPINFO); GetStartupInfo(&si); si.hStdError = hOutputWrite; si.hStdOutput = hOutputWrite; si.hStdInput = hInputRead; si.wShowWindow = SW_HIDE; si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES; DWORD dwWritten; if (!CreateProcess(NULL,"E:\\and.exe",NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi)) { printf("Error On CreateProcess"); return; } CloseHandle(hInputRead); CloseHandle(hOutputWrite); char szInPut[10] = "12\r\n 34\r\n";// 输入 WriteFile(hInputWrite, szInPut, strlen(szInPut), &dwWritten, NULL); char buffer[4096] = {0}; DWORD bytesRead; while (true) { if(ReadFile(hOutputRead,buffer,4095,&bytesRead,NULL) == NULL) { break; } printf(buffer);// 输出 Sleep(500); } CloseHandle(hInputWrite); CloseHandle(hOutputRead); } //测试用and.exe的代码 /* #include "stdio.h" void main() { int x,y; printf("Input First Num:\r\n"); scanf( "%d", &x ); printf("Input Second Num:\r\n"); scanf( "%d", &y ); printf("%d + %d = %d\r\n",x,y,x+y); } */


相关文章

相关软件