首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C/C++ 获取命令行回到信息

2012-11-23 
C/C++ 获取命令行返回信息std::string GetCmdInfo(const char * pszCmd){//创建匿名管道SECURITY_ATTRIBUT

C/C++ 获取命令行返回信息

 

 

std::string GetCmdInfo(const char * pszCmd){    //创建匿名管道    SECURITY_ATTRIBUTES sa = {sizeof(SECURITY_ATTRIBUTES), NULL, TRUE};    HANDLE hRead, hWrite;    if (!CreatePipe(&hRead, &hWrite, &sa, 0))    {        return "";    }    //设置命令行进程启动信息(以隐藏方式启动命令并定位其输出到hWrite)    STARTUPINFO si = {sizeof(STARTUPINFO)};    GetStartupInfo(&si);    si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;    si.wShowWindow = SW_HIDE;    si.hStdError = hWrite;    si.hStdOutput = hWrite;    //启动命令行    PROCESS_INFORMATION pi;    if (!CreateProcess(NULL, (char *)pszCmd, NULL, NULL, TRUE, NULL, NULL, NULL, &si, &pi))    {        return "";    }    //立即关闭hWrite    CloseHandle(hWrite);    //读取命令行返回值    std::string strRet;    char buff[1024] = {0};    DWORD dwRead = 0;    while (ReadFile(hRead, buff, 1024, &dwRead, NULL))    {        strRet.append(buff, dwRead);    }    CloseHandle(hRead);    return strRet;}


 

热点排行