织梦CMS - 轻松建站从此开始!

罗索

当前位置: 主页>杂项技术>VC(MFC)>

在新窗口启动控制台程序,并且最小化

落鹤生 发布于 2015-02-07 23:03 点击:次 
如何在一个新窗口中去启动一个控制台程序,并且使这个新启动的控制台Console程序最小化.
TAG: 控制台程序最小化  最小化  console程序最小化  

  STARTUPINFO *si = new STARTUPINFO[nProcNum];
  PROCESS_INFORMATION *pi = new PROCESS_INFORMATION[nProcNum];
  int nCurNum = 0;
  string cPath;
  EnterCriticalSection(&m_mapCs);
  std::vector<ExeInfo>::iterator it = m_vctTask.begin();  // 启动任务
  for(; it!=m_vctTask.end(); it++)
  {
       // 如果是子目录
       if(strlen(it->TaskPath) > 0)
       {
            cPath = g_cRootDir + "\\" + it->TaskPath ;
            SetCurrentDirectory(cPath.c_str());
            sprintf(cCmdLine, "%s\\%s\\%s", g_cRootDir.c_str(),it->TaskPath,it->ExeName);
       }
       // 否则在当前目录下
       else
       {
            sprintf(cCmdLine, "%s\\%s", g_cRootDir.c_str(),it->ExeName);
       }

      ZeroMemory( &si[nCurNum], sizeof(si[nCurNum]) );
       si[nCurNum].cb = sizeof(si[nCurNum]);
       ZeroMemory( &pi[nCurNum], sizeof(pi[nCurNum]) );
       // 设置启动最小化      
     si[nCurNum].dwFlags = STARTF_USESHOWWINDOW;
       si[nCurNum].wShowWindow = SW_MINIMIZE;
  
    if(! ::CreateProcess (NULL, cCmdLine, NULL,    NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &si[nCurNum],&pi[nCurNum]))
       {
            //error
            sprintf(szLogBuf, "---%s(%d):[%s]启动[Process%d]失败,错误代码%d,请检查配置文件 \r\n", __FILE__, __LINE__, __FUNCTION__, nCurNum+1,GetLastError());
            LOG4CPLUS_ERROR(m_oLog, szLogBuf);
    }
       SetCurrentDirectory(g_cRootDir.c_str());
       nCurNum ++;
       Sleep(100);
  }//end for 启动任务

(augusdi)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201502/17228.html]
本文出处:CSDN博客 作者:augusdi 原文
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容