1.创建函数
BOOL CreateProcess(
  LPCTSTR lpApplicationName,
  LPTSTR lpCommandLine,
  LPSECURITY_ATTRIBUTES lpProcessAttributes,
  LPSECURITY_ATTRIBUTES lpThreadAttributes,
  BOOL bInheritHandles,
  DWORD dwCreationFlags,
  LPVOID lpEnvironment,
  LPCTSTR lpCurrentDirectory,
  LPSTARTUPINFO lpStartupInfo,
  LPPROCESS_INFORMATION lpProcessInformation
);

2.创建进程
 STARTUPINFO startinfo={0};
 PROCESS_INFORMATION pinfo;
 startinfo.cb = sizeof(STARTUPINFO);

 startinfo.lpDesktop = "";
 startinfo.lpReserved = NULL;
 startinfo.lpTitle = NULL;
 startinfo.dwFlags = STARTF_USESHOWWINDOW;
 startinfo.cbReserved2 = 0;
 startinfo.lpReserved2 = NULL;
 startinfo.wShowWindow = SW_HIDE;// SW_SHOW; 

//获取进程的绝对路径。如:e:\aaa\bbb\pro.exe 
char out_pathName[MAX_PATH];
 ::GetModuleFileName(NULL,out_pathName, MAX_PATH); 
 CString path = out_pathName;
 path = path.Left(path.ReverseFind('\\'));
 path +="\\tools";

 bool bgood =CreateProcess(".\\tools\\DBBackUp.exe",
  NULL,//commLine
  NULL,
  NULL,//FALSE,//
  FALSE,//是否继承句柄
  0,//
  NULL,//环境的申明,为NULL默认与父进程的环境一致
  path,//路径,为NULL默认与父进程的exe路径是一致的。

子进程路径说明

"E:\\\\客户端\\客户端\\tools",//NULL
  &startinfo,
  &pinfo
  );


 if(!bgood)
 {
  ExMessageBox("产生进程失败!","",MB_OK);
  return ;
 }
 return ;

posted on 2006-09-22 17:00  泡泡  阅读(492)  评论(0编辑  收藏  举报