![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Juan, utiliza esta rutina para firmar archivos xml utilizando rutina.jar
txtComando.Text:='c:\jdk1.7.0_13\bin\java -jar rutina.jar firma archivos.xml archivo_salida.xml ; txtSalida.Text := ejecutarComando(txtComando.Text); function ejecutarComando (comando : string) : string; var Buffer: array[0..4096] of Char; si: STARTUPINFO; sa: SECURITY_ATTRIBUTES; sd: SECURITY_DESCRIPTOR; pi: PROCESS_INFORMATION; newstdin, newstdout, read_stdout, write_stdin: THandle; exitcod, bread, avail: Cardinal; begin Result:= ''; if IsWinNT then begin InitializeSecurityDescriptor(@sd, SECURITY_DESCRIPTOR_REVISION); SetSecurityDescriptorDacl(@sd, true, nil, false); sa.lpSecurityDescriptor := @sd; end else sa.lpSecurityDescriptor := nil; sa.nLength := sizeof(SECURITY_ATTRIBUTES); sa.bInheritHandle := TRUE; if CreatePipe(newstdin, write_stdin, @sa, 0) then begin if CreatePipe(read_stdout, newstdout, @sa, 0) then begin GetStartupInfo(si); with si do begin dwFlags := STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW; wShowWindow := SW_HIDE; hStdOutput := newstdout; hStdError := newstdout; hStdInput := newstdin; end; Fillchar(Buffer, SizeOf(Buffer), 0); GetEnvironmentVariable('COMSPEC', @Buffer, SizeOf(Buffer) - 1); StrCat(@Buffer,PChar(' /c ' + comando)); if CreateProcess(nil, @Buffer, nil, nil, TRUE, CREATE_NEW_CONSOLE, nil, nil, si, pi) then begin repeat PeekNamedPipe(read_stdout, @Buffer, SizeOf(Buffer) - 1, @bread, @avail, nil); if bread > 0 then begin Fillchar(Buffer, SizeOf(Buffer), 0); ReadFile(read_stdout, Buffer, bread, bread, nil); Result:= Result + String(PChar(@Buffer)); end; Application.ProcessMessages; GetExitCodeProcess(pi.hProcess, exitcod); until (exitcod <> STILL_ACTIVE) and (bread = 0); end; CloseHandle(read_stdout); CloseHandle(newstdout); end; CloseHandle(newstdin); CloseHandle(write_stdin); end; end; saludos jgutti |
|
#2
|
||||
|
||||
|
Recuerda poner los tags al código fuente, ejemplo:
![]() Gracias ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#3
|
||||
|
||||
|
Hola jgutti, agradezco tu ayuda, intente probar tu rutina y no me funciono, así que tuve que implementar otra solución, así que aquí se las explico, tuve que colocar un intermediario entre el ejecutable de Pacal y el Jar de Java, en este caso como lo tengo en un equipo con arquitectura Windows, construí un archivo por lotes .BAT, en el código fuente de Pascal coloque la siguiente instrucción:
El código de .BAT es el siguiente: Código:
CD "API_WS_SDL_SIMPLE" java -jar API_WS_SDL_SIMPLE.jar %1 %2 PAUSE
__________________
De ante mano gracias por tomarse el tiempo de leer este Hilo. ------------------------------- Juan Sebastián Cubillos Gonzalez Desarrollador de soluciones informáticas. Bogotá, Colombia. Encuentra me en: http://www.linkedin.com/pub/juan-seb...lez/66/1b8/150 |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Ejecutar archivo desde un recurso | broly7 | Varios | 5 | 18-04-2011 03:25:21 |
| ejecutar archivo .kml desde php | richy08 | PHP | 0 | 27-09-2008 00:02:05 |
| como ejecutar archivo *.bat desde delphi 7 | kurono | Varios | 6 | 27-08-2007 05:42:48 |
| Ejecutar un archivo HTML Help(*.CHM), desde Delphi | Majo | API de Windows | 3 | 26-11-2004 11:10:27 |
|