El error da en cualquier version de w7. Jsingpdf 1.4.5 - capicom 1.0.1.32
Código Delphi
[-]
function ExecuteProcess(ProcessName: String): Cardinal;
var
StartInfo: TStartupInfo;
ProcInfo: TProcessInformation;
begin
Result := 0;
FillChar(StartInfo, SizeOf(StartInfo), 0);
StartInfo.cb := SizeOf(StartInfo);
StartInfo.dwFlags := STARTF_USESHOWWINDOW;
StartInfo.wShowWindow := SW_SHOWMINIMIZED;
if CreateProcess(nil, PChar(ProcessName), nil, nil, false, 0, nil, nil, StartInfo, ProcInfo) then
Result := ProcInfo.hProcess;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
lsCertificados.Clear;
carpetaAlmacen := CoStore.Create;
carpetaAlmacen.Open(CAPICOM_CURRENT_USER_STORE,
CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED or
CAPICOM_STORE_OPEN_INCLUDE_ARCHIVED or
CAPICOM_STORE_OPEN_EXISTING_ONLY);
certificadosAlmacen := carpetaAlmacen.Certificates as ICertificates2;
arch := ..nombre del archivo a firmar...
ejecuta := ' -jar "C:\Archivos de programa\JSignPdf\JSignPdf.jar" '
+ '"' + arch + '"' + ' --out-directory c:\firmar\ -a -kst WINDOWS-MY '
+ ' --l2-text "Datos del firmante '+ firma + '"'
+ ' -urx 500 -ury 590 -llx 250 -lly 500 --visible-signature '
+ ' -pg 1 --render-mode SIGNAME_AND_DESCRIPTION --font-size 8 '
+ ' --out-suffix "_terminado" -pr DISALLOW_PRINTING --quiet';
Process := ExecuteProcess('C:\Archivos de programa\JSignPdf\jre\bin\javaw.exe' + pchar(ejecuta));
if Process <> 0 then
WaitForSingleObject(Process, INFINITE);
MsgUser := 'PDF Firmado';
MessageDlg(MsgUser,mtInformation,[mbOK],0);
end;