Ver Mensaje Individual
  #4  
Antiguo 14-03-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Para que el código sea reutilizable podés hacerte una función:
Código:
void CreateProcessAndWait(AnsiString AppName, AnsiString Args)
{
STARTUPINFO StartInfo;
PROCESS_INFORMATION ProcInfo;

  Trim(AppName);
  Trim(Args);
  Args = " " + Args;
  memset(&ProcInfo, 0, sizeof(ProcInfo));
  memset(&StartInfo, 0 , sizeof(StartInfo));
  StartInfo.cb = sizeof(StartInfo);
  if (CreateProcess(AppName.c_str(), Args.c_str(), NULL, NULL,
      FALSE, CREATE_DEFAULT_ERROR_MODE, NULL, NULL, &StartInfo, &ProcInfo))
    WaitForSingleObject(ProcInfo.hThread, INFINITE);
}
Llamada de ejemplo:
Código:
{
  CreateProcessAndWait("C:\\Program Files\\Adobe\\Reader 9.0\\Reader\\AcroRd32.exe",
    "C:\\PREVIEW.PDF");
  ...
}
Saludos.

Edito: Tené en cuenta que si la aplicación es de 16 bits lpApplicationName tendrá que ser NULL, mientras que el nombre de la aplicacion y los parámetros deberan ser especificados en lpCommandLine. (CREATE PROCESS function)
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 14-03-2012 a las 19:22:37.
Responder Con Cita