读取控制台输出
来源:互联网 发布:董洁的冷清秋知乎 编辑:程序博客网 时间:2024/04/30 12:54
#include <stdio.h>#include <Shlwapi.h>//////////////////////////////////////////////////////////////////////////template <typename CallbackT>BOOL ShellCommand(LPSTR lpszCmdLine, CallbackT funCallback, DWORD dwContext){STARTUPINFOAstartupInfo;PROCESS_INFORMATIONprocessInfo;SECURITY_ATTRIBUTES securityAttributes = { sizeof(SECURITY_ATTRIBUTES), NULL, TRUE, };HANDLE hPipeRead= NULL;HANDLE hPipeWrite= NULL;CHAR szBuffer[1024*8] = { 0 };DWORD dwBytesRead= 0;BOOL bFlag = FALSE;//////////////////////////////////////////////////////////////////////////ZeroMemory(&startupInfo, sizeof(startupInfo));ZeroMemory(&processInfo, sizeof(processInfo));if (!::CreatePipe(&hPipeRead, &hPipeWrite, &securityAttributes, 0)) {goto Exit;}startupInfo.cb= sizeof(STARTUPINFO);::GetStartupInfoA(&startupInfo);startupInfo.hStdError= hPipeWrite;startupInfo.hStdOutput= hPipeWrite;startupInfo.wShowWindow= SW_HIDE;startupInfo.dwFlags= STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;if (!::CreateProcessA(NULL, lpszCmdLine, NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, NULL, &startupInfo, &processInfo)) {goto Exit;}::CloseHandle(hPipeWrite);hPipeWrite = NULL;do {if (!::ReadFile(hPipeRead, szBuffer, sizeof(szBuffer)-1, &dwBytesRead, NULL)) {break;}funCallback(szBuffer, dwContext);} while (::WaitForSingleObject(processInfo.hProcess, 0) == WAIT_TIMEOUT);bFlag = TRUE;Exit:if (hPipeRead == NULL) {::CloseHandle(hPipeRead);hPipeRead = NULL;}if (hPipeWrite == NULL) {::CloseHandle(hPipeWrite);hPipeWrite = NULL;}return bFlag;}//////////////////////////////////////////////////////////////////////////void Print(LPCSTR lpszText, DWORD dwContext){printf("%s\n", lpszText);}//////////////////////////////////////////////////////////////////////////int main(){ShellCommand("cmd /C dir d:", Print, 0);return 0;}
0 0
- 读取控制台输出
- 读取控制台输出
- 读取控制台输出
- C# 控制台输出与读取
- 读取文件内容输出到控制台方法
- C++控制台读取和输出函数
- java按行读取文件并输出到控制台
- 网络编程_客户端读取文本文件服务器控制台输出
- java Scanner类读取控制台输入内容再输出乱码
- java 控制台输出读取到的.xls文件内容
- 控制台输出
- 控制台输出
- C#控制台基础 使用filestream读取txt文本文件并输出到控制台
- 《黑马程序员》 IO之读取文件中的信息输出到控制台显示
- (java)读取E盘中的文件到控制台并输出行号
- C#控制台基础 使用file.readallbyte读取txt中的内容转化为字符串并输出
- io流读取文件内容并将其逆值输出到控制台
- (86)读取键盘录入、控制台输出语句、流操作规律、System.setIn
- View Controller 转场动画
- js 获取系统信息(仅IE有效)
- 51单片机的IO口驱动能力、灌电流、拉电流、上拉电阻的选择
- hdu-1342 Lotto
- 牛人博客
- 读取控制台输出
- Cocos2d-x 2.0 拖尾效果深入分析
- 第十五章 15.2.1节练习
- 关于radius、nntp等协议的测试
- CSS实现三列DIV等高布局
- smali入门之try..catch
- 年薪至少20万,大数据人才到底值钱在什么地方?
- JAVA移位运算符
- spring,mybatis事务管理配置与@Transactional注解使用[转]