Ver Mensaje Individual
  #9  
Antiguo 10-04-2019
fracapa fracapa is offline
Registrado
 
Registrado: jul 2015
Posts: 2
Reputación: 0
fracapa Va por buen camino
Hola:

Cuando solo puse que no iba, era porque no tenia mas información, y la aplicación no me devolvía nada.

Todos los parámetros, rutas, etc etc estaban bien.

La función de Ejecutar y Esperar ya la había probado y no me funcionaba.

El problema es que a la aplicación le cuesta arrancar un poco, comprueba si hay lectores de DNIe, almacenes de certificados, etc etc y después realiza la firma con el pdf.

Use la función de abajo usando como condición de salida <> STILL_ACTIVE y quitando or Application.Terminated, porque el ShellExecuteEx lanza la aplicación que se le pasa y salia por el Terminated.
Código Delphi [-]
var
  SEInfo: TShellExecuteInfo;
  ExitCode: DWORD;
begin
  FillChar(SEInfo, SizeOf(SEInfo), 0) ;
  SEInfo.cbSize := SizeOf(TShellExecuteInfo);

  SEInfo.fMask       := SEE_MASK_NOCLOSEPROCESS;
  SEInfo.Wnd         := Application.Handle;
  SEInfo.lpFile      := PChar(sFichero_Aplicacion);
  SEInfo.lpParameters:= PChar(sParametros);
  SEInfo.nShow       := SW_HIDE;

  if ShellExecuteEx(@SEInfo) then
  begin
    repeat
      Application.ProcessMessages;
      GetExitCodeProcess(SEInfo.hProcess, ExitCode) ;
    until (ExitCode <> STILL_ACTIVE); // or Application.Terminated;
  end
  else
    showmessage('Error') ;
end;
Gracias por todo y un saludo

Última edición por ecfisa fecha: 10-04-2019 a las 18:59:15. Razón: Agregar etiquetas [DELPHI]
Responder Con Cita