Page 1 of 1

ShellExecute(), WaitRun() y Simbolo de Sistema

Posted: Mon Mar 17, 2025 7:31 am
by FiveWiDi
Hola a todos,

Alguién sabría decirme el por que estos casos:

a) No funciona
ShellExecute( nWnd, ;
Nil, ;
'"C:\Program Files\OpenSSL-Win64\bin\openssl.exe"', ;
'x509 -in C:\Particular\Ampa\Ampa32\BD\BL\Firma_Digital\MiFicheroDeFirmaDigital.pem -noout -enddate > C:\Desarrol\Treball\AMPA2501\Exe\TEMP\__DataFirma.txt', ;
Nil, 1 )


b) No funciona
WaitRun( '"C:\Program Files\OpenSSL-Win64\bin\openssl.exe"' + ;
' x509 -in C:\Particular\Ampa\Ampa32\BD\BL\Firma_Digital\MiFicheroDeFirmaDigital.pem -noout -enddate > C:\Desarrol\Treball\AMPA2501\Exe\TEMP\__DataFirma.txt', 0 )


c) Si funciona !!!
memowrit( 'cert.bat', '"C:\Program Files\OpenSSL-Win64\bin\openssl.exe"' + ;
' x509 -in C:\Particular\Ampa\Ampa32\BD\BL\Firma_Digital\MiFicheroDeFirmaDigital.pem -noout -enddate > C:\Desarrol\Treball\AMPA2501\Exe\TEMP\__DataFirma.txt' )

WaitRun( 'cert.bat', 0 )


d) Desde un "Simolo de Sistema" ( CMD) - Si funciona
"C:\Program Files\OpenSSL-Win64\bin\openssl.exe" x509 -in C:\Particular\Ampa\Ampa32\BD\BL\Firma_Digital\MiFicheroDeFirmaDigital.pem -noout -enddate > C:\Desarrol\Treball\AMPA2501\Exe\TEMP\__DataFirma.txt

Ni con ShellExecute() ni con WaitRun() no consigo que funcione la ejecución.

Pero si a WaitRun le envío un fichero .BAT con el contenido de la instrucción a ejecutar SI funciona, i gual que si lo tecleo directamente desde un Simbolo de Sistema (CMD).

Muchas gracias,

Re: ShellExecute(), WaitRun() y Simbolo de Sistema

Posted: Mon Mar 17, 2025 8:16 am
by Antonio Linares
Carlos,

La redirección funciona bien usando cmd ó un batch y no funciona bien de las otras formas

Si le pasas tu mensaje a Grok https://x.com/i/grok te lo explica con detalle :-)

Re: ShellExecute(), WaitRun() y Simbolo de Sistema

Posted: Mon Mar 17, 2025 10:13 am
by FiveWiDi
Antonio Linares wrote: Mon Mar 17, 2025 8:16 am Carlos,

La redirección funciona bien usando cmd ó un batch y no funciona bien de las otras formas

Si le pasas tu mensaje a Grok https://x.com/i/grok te lo explica con detalle :-)
Gracias Antonio,

Se lo he preguntado a Gemini (con grok no he empezado nada).

Parece ser que es el redireccionamiento '>', que a ShellExecute no le 'gusta' i WaitRun lo delega al CMD.exe y se lo 'come' bien.
(bueno eso dice Gemini, haré un acto de fe)

Seguimos,

Re: ShellExecute(), WaitRun() y Simbolo de Sistema

Posted: Tue Mar 18, 2025 5:20 am
by Jimmy
hi,

try to use | (pipe) instead ">" to redirect output.