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); end
else
showmessage('Error') ;
end;
Gracias por todo y un saludo