谢谢!

解决方案 »

  1.   

    //执行ipconfig的代码
    #define EXECDOSCMD "c:\\winnt\\system32\\ipconfig /all" //可以换成你的命令
    BOOL ExecDosCmd()
    {
    SECURITY_ATTRIBUTES sa;
    HANDLE hRead,hWrite;

    sa.nLength = sizeof(SECURITY_ATTRIBUTES);
    sa.lpSecurityDescriptor = NULL;
    sa.bInheritHandle = TRUE;
    if (!CreatePipe(&hRead,&hWrite,&sa,0)) 
    {
    return FALSE;


    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;
             //关键步骤,CreateProcess函数参数意义请查阅MSDN
    if (!CreateProcess(NULL, EXECDOSCMD
    ,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi)) 
    {
    return FALSE;
    }
    CloseHandle(hWrite);

    char buffer[4096] = {0};
    DWORD bytesRead; 
    while (true) 
    {
    if (ReadFile(hRead,buffer,4095,&bytesRead,NULL) == NULL)
    break;
    //buffer中就是执行的结果,可以保存到文本,也可以直接输出
                      printf(buffer);
    Sleep(200); 

             return TRUE;
    }
      

  2.   

    比如,每次运行程序时,我想抓到当前桌面的图像。由于程序运行产生了一个console黑窗口,导致抓到的图像里都含有该console窗口。所以,我想问的是,能不能让程序运行时最小化console窗口或者在后台运行不显示。我的程序vc下的console程序,附带支持mfc,atl
      

  3.   

    不用CONSOLE, 用其他的方式
    窗口一开始就最小化