使用DOS管道的代码片段

void  CDosDirDlg::OnOK() 
{
    SECURITY_ATTRIBUTES sa;
    HANDLE hRead,hWrite;
    
    sa.nLength 
= sizeof(SECURITY_ATTRIBUTES);
    sa.lpSecurityDescriptor 
= NULL;
    sa.bInheritHandle 
= TRUE;
    
if (!CreatePipe(&hRead,&hWrite,&sa,0)) {
        MessageBox(
"Error On CreatePipe()");
        
return;
    }

    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;
    
if (!CreateProcess(NULL,"c:/windows/system32/cmd.exe"
        ,NULL,NULL,TRUE,NULL,NULL,NULL,
&si,&pi)) {
        MessageBox(
"Error on CreateProcess()");
        
return;
    }

    CloseHandle(hWrite);
    
    
char buffer[4096= {0};
    DWORD bytesRead;
    
while (true{
        
if (ReadFile(hRead,buffer,4095,&bytesRead,NULL) == NULL)
            
break;
        m_Edit1 
+= buffer;
        UpdateData(
false);
        Sleep(
200);
    }
 
}

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值