之前用了很坑爹的做法去读取了cmd命令的回显信息,现在发现了用匿名管道的实现方法,由于楼主没有学过Windows核心编程,找了一个代码来凑数

存下来以后研究

#include <windows.h>
#include <stdio.h>
#define EXE_NAME NULL//TEXT("Cmd.exe")
#define EXE_CMD TEXT("Cmd.exe /C ipconfig/all")
int main()
{ char Buffer[];
STARTUPINFO sInfo;//新进程的主窗口特性
PROCESS_INFORMATION pInfo;
SECURITY_ATTRIBUTES sa;
HANDLE hRead, hWrite;
DWORD bytesRead; //读取代码的长度
sa.nLength = sizeof(SECURITY_ATTRIBUTES);/ /结构体的大小,可用SIZEOF取得
sa.lpSecurityDescriptor = NULL;//安全描述符
sa.bInheritHandle = TRUE;;/ /安全描述的对象能否被新创建ÆÆ的进程继承 if (!CreatePipe(&hRead, &hWrite, &sa, )) //创建匿名管道
{
return GetLastError();//返回最近的一个错误,0表示正常
} GetStartupInfo(&sInfo);
sInfo.cb = sizeof(sInfo);
sInfo.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
sInfo.wShowWindow = SW_HIDE;
sInfo.hStdError = hWrite; //将管道的写端交给子进程
sInfo.hStdOutput = hWrite;
memset(&pInfo, , sizeof(pInfo)); if (!CreateProcess(EXE_NAME, EXE_CMD, NULL, NULL, TRUE, , NULL, NULL, &sInfo, &pInfo)) //创建子进程
{
CloseHandle(hWrite);
CloseHandle(hRead);
return GetLastError();
}
CloseHandle(hWrite); //关闭父进程的写端 for (int i = ;; ++i)
{
if (!ReadFile(hRead, Buffer, sizeof(Buffer) - , &bytesRead, NULL)) //读取内容
{
break;
}
Buffer[bytesRead] = ;
printf("%s\n", Buffer); } WaitForSingleObject(pInfo.hProcess, INFINITE);//当等待仍在挂起状态时,句柄被关闭,那么函数行为是未定义的。该句柄必须具有 SYNCHRONIZE 访问权限;
CloseHandle(hRead);
system("pause");
return ;
}

最新文章

  1. 【干货分享】流程DEMO-人员调动流程
  2. NodeJs 开发微信公众号(五)真实环境部署
  3. cglib动态新增类方法
  4. 第十二章:使用FP-growth算法进行关联分析
  5. 【Other】Ubuntu 14.04 pptp 客户端连接配置
  6. JQuery 遍历 - prev() 方法
  7. win8.1/win10 UEFI + GPT 安装(测试机型:华硕S56CM)
  8. JSP页面中的pageEncoding和contentType两种属性
  9. HDU 1520:Anniversary party(树形DP)
  10. WCF摘记
  11. Python日志输出格式和时间格式
  12. 第11章:DOM扩展
  13. PhpSrom安装xdebug
  14. c语言基础知识
  15. [Swift]LeetCode316. 去除重复字母 | Remove Duplicate Letters
  16. mysql tablespace(独立表空间)超速备份大数据
  17. NPOI 导入为table 处理excel 格式问题
  18. js中数组去重
  19. 转载一篇关于toString和valueOf
  20. verdi bin工具

热门文章

  1. nginx反向代理编译异常
  2. iOS button 里边的 字体的 摆放
  3. Python全栈之路6--正则表达式
  4. 附10 kibana创建新的index patterns
  5. socket方法
  6. POJ Ant Counting DP
  7. gawk快速入门
  8. python 2.X
  9. com.alibaba.fastjson.JSONObject学习
  10. java 类的关系