VC利用管道读取EXE返回值
来源:互联网 发布:淘宝儿童舞蹈裤 编辑:程序博客网 时间:2024/05/21 11:13
BOOL Run(const char *command, char *pOut, int nCount)
{
SECURITY_ATTRIBUTES sa;
HANDLE hRead = NULL, hWrite = NULL;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
if (!CreatePipe(&hRead, &hWrite, &sa, 0))
{
return FALSE;
}
STARTUPINFOA si;
PROCESS_INFORMATION pi;
si.cb = sizeof(STARTUPINFOW);
GetStartupInfoA(&si);
si.hStdError = hWrite;
si.hStdOutput = hWrite;
si.wShowWindow = SW_HIDE;
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
if (!CreateProcessA(NULL, (char *)command, NULL, NULL, TRUE, NULL, NULL, NULL, &si, &pi))
{
CloseHandle(hWrite);
CloseHandle(hRead);
return FALSE;
}
CloseHandle(hWrite);
char szBuffer[5 * 1024] = {0};
DWORD dwReaded;
DWORD dwExitCode;
char *pTempOut = pOut;
while (GetExitCodeProcess(pi.hProcess, &dwExitCode))
{
if (dwExitCode != STILL_ACTIVE)
{
break;
}
memset(szBuffer, 0, sizeof(szBuffer));
if (!ReadFile(hRead, szBuffer, sizeof(szBuffer) - 1, &dwReaded, NULL))
{
break;
}
memcpy(pTempOut, szBuffer, dwReaded);
pTempOut += dwReaded;
}
WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle(hRead);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
return TRUE;
}
- VC利用管道读取EXE返回值
- 获取管道返回值
- vc读取向.exe发送的参数
- vc读取向.exe发送的参数
- python利用管道popen调用.exe进行交互
- awk 中 利用shell命令和管道 捕捉返回内容
- vc 利用无名管道 控制台程序实现cmd功能
- MFC 执行CMD命令 利用管道技术读取输出内容
- [错误提示]VC++, C:\WINDOWS\system32\cmd.exe 返回
- VC读取EXE文件的图标并保存
- VC读取文件(exe、.doc、.chm等)
- 利用VC中函数调用一个.exe文件
- 读取exec返回值
- 读取exec返回值
- 从利用匿名管道实现可交互式远程超级终端cmd.exe说起
- 利用active控件读取excel文件中单元格的值并返回
- 利用 perl 调用 Java 类,通过读取文件 获取调用类返回值
- bat获得main.exe返回值
- MO_GLOBAL - EBS R12 中 Multi Org 设计的深入研究(1)
- CXF动态调用实例
- Chrome调试(debugger)总是进入paused in debugger状态
- C#中的如何:连接和分割字符串
- asp.net 底层
- VC利用管道读取EXE返回值
- MO_GLOBAL - EBS R12 中 Multi Org 设计的深入研究 (2)
- MO_GLOBAL - EBS R12 中 Multi Org 设计的深入研究 (3)
- magento多域名多店铺域名访问问题
- 在开发中总结的一点小技巧
- hdu 1020
- Java之TreeSet介绍
- Linux中通过/proc/stat等文件计算Cpu使用率
- Cocos2d-x游戏开发之无法运行在Android模拟器