MFC创建进程

一般情况下我们一个软件产品打开后就一个进程,但有些产品可能会有多个进程.那怎么在一个进程中创建另外的进程呢.

创建进程

void CreateProcess(){

   CString szExePath; //要创建进程对应的exe文件路径

   szExePath = "D:\\Tmp\\TestApp.exe";

  //假如要传一个参数过去的话可以用一个字符串传过去szExePath += " D:\\Tmp\\info.txt";

  //传多个参数的话中间有空格隔开就行

STARTUPINFO startInfo;

PROCESS_INFORMATION proInfo;

 

memset(&startInfo,0,sizeof(startInfo));

memset(&proInfo,0,sizeof(proInfo));

startInfo.cb = sizeof(startInfo);

//创建进程

CreateProcess(NULL,szExePath.GetBuffer(),NULL,NULL,FALSE,0,NULL,NULL,&startInfo,&proInfo);

CloseHandle(proInfo.hProcess);

CloseHandle(proInfo.hThread);  

}

 

接受参数

上面就简单的创建了一个新的进程了,假如TestApp.exe需要接受原来的进程的传来的参数.可以在APP文件中这样写

CMyApp  theApp;

 

BOOL CMyApp::InitInstance(){

  CString szPara = theApp.m_lpCmdLine;  //得到的值为D:\\Tmp\\info.txt.

  //或者这样简单的写CString szPara = __targv[1];

  如果有多个参数的话可以这样

  int i = 1;

  CString szParaArr[100] = {""};

  while( __targv[i] != NULL)

{

   szParaArr[i] = __targv[i];

   i ++;

}

    

 

 

}

你可能感兴趣的:(4),C++)