一个管道的应用例子
来源:互联网 发布:c高级编程第8版中文pdf 编辑:程序博客网 时间:2024/05/09 05:25
#define EXECDOSCMD "ping www.sohu.com" //可以换成你的命令
BOOL ExecDosCmd()
{
SECURITY_ATTRIBUTES sa;
HANDLE hRead,hWrite;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
if (!CreatePipe(&hRead,&hWrite,&sa,0))
{
return FALSE;
}
STARTUPINFO si;
PROCESS_INFORMATION pi;
si.cb = sizeof(STARTUPINFO);
GetStartupInfo(&si);
si.hStdError = hWrite;
si.hStdOutput = hWrite;
si.wShowWindow = SW_HIDE;
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
//关键步骤,CreateProcess函数参数意义请查阅MSDN
if (!CreateProcess(NULL, EXECDOSCMD
,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi))
{
return FALSE;
}
CloseHandle(hWrite);
char buffer[4096] = {0};
DWORD bytesRead;
ofstream ofst;
ofst.open("cmd.txt");
while (true)
{
if (ReadFile(hRead,buffer,4095,&bytesRead,NULL) == NULL)
break;
//buffer中就是执行的结果,可以保存到文本,也可以直接输出
//printf(buffer);
ofst<<buffer;
Sleep(200);
}
ofst.close();
return TRUE;
}
BOOL ExecDosCmd()
{
SECURITY_ATTRIBUTES sa;
HANDLE hRead,hWrite;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
if (!CreatePipe(&hRead,&hWrite,&sa,0))
{
return FALSE;
}
STARTUPINFO si;
PROCESS_INFORMATION pi;
si.cb = sizeof(STARTUPINFO);
GetStartupInfo(&si);
si.hStdError = hWrite;
si.hStdOutput = hWrite;
si.wShowWindow = SW_HIDE;
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
//关键步骤,CreateProcess函数参数意义请查阅MSDN
if (!CreateProcess(NULL, EXECDOSCMD
,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi))
{
return FALSE;
}
CloseHandle(hWrite);
char buffer[4096] = {0};
DWORD bytesRead;
ofstream ofst;
ofst.open("cmd.txt");
while (true)
{
if (ReadFile(hRead,buffer,4095,&bytesRead,NULL) == NULL)
break;
//buffer中就是执行的结果,可以保存到文本,也可以直接输出
//printf(buffer);
ofst<<buffer;
Sleep(200);
}
ofst.close();
return TRUE;
}
- 一个管道的应用例子
- 命名管道的一个简单例子
- 一个比较好的命名管道例子
- 一个LINUX下管道通信的例子
- 一个小例子演示下epoll和管道的使用
- 一个应用Dom4j的例子
- epoll应用的一个例子
- epoll应用的一个例子
- Properties应用的一个例子
- 管道流的简单例子
- 一个Jlist控件应用的小例子
- 一个Command模式的应用例子
- 3DES应用的一个例子
- .NET MSChart应用的一个简单例子
- Python字典应用的一个例子
- 最小二乘法实际应用的一个完整例子
- 一个应用MVC的小例子
- Python字典应用的一个例子
- Testing vs Debugger
- 2004-9-21日记
- .Net平台下开发英文语音应用程序
- notepad使用时的一个奇怪的问题
- 用MRTG检测Linux网络性能
- 一个管道的应用例子
- Web服务世界中的模型驱动体系结构
- 把.NET程序部署到没有安装.NET Framwork的机器上
- Swing and SWT: A Tale of Two Java GUI Libraries
- C#的四个基本技巧
- Java中向方法传参数只有传值一种!
- Reflector下载地址
- HTML标记参考手册
- 代码动态生成利器ASM